| A laundry list of things that need looking at, most of which will |
| require more work than the average checkpatch cleanup... |
| |
| Note that some of these entries may not be bugs - they're things |
| that need to be looked at, and *possibly* fixed. |
| |
| Clean up the ffsCamelCase function names. |
| |
| Fix (thing)->flags to not use magic numbers - multiple offenders |
| |
| Sort out all the s32/u32/u8 nonsense - most of these should be plain int. |
| |
| exfat_core.c - ffsReadFile - the goto err_out seem to leak a brelse(). |
| same for ffsWriteFile. |
| |
| All the calls to fs_sync() need to be looked at, particularly in the |
| context of EXFAT_DELAYED_SYNC. Currently, if that's defined, we only |
| flush to disk when sync() gets called. We should be doing at least |
| metadata flushes at appropriate times. |
| |
| ffsTruncateFile - if (old_size <= new_size) { |
| That doesn't look right. How did it ever work? Are they relying on lazy |
| block allocation when actual writes happen? If nothing else, it never |
| does the 'fid->size = new_size' and do the inode update.... |
| |
| ffsSetAttr() is just dangling in the breeze, not wired up at all... |
| |
| Convert global mutexes to a per-superblock mutex. |
| |
| Right now, we load exactly one UTF-8 table. Check to see |
| if that plays nice with different codepage and iocharset values |
| for simultanous mounts of different devices |
| |
| exfat_rmdir() checks for -EBUSY but ffsRemoveDir() doesn't return it. |
| In fact, there's a complete lack of -EBUSY testing anywhere. |
| |
| There's probably a few missing checks for -EEXIST |
| |
| check return codes of sync_dirty_buffer() |
| |
| Why is remove_file doing a num_entries++?? |
| |
| Double check a lot of can't-happen parameter checks (for null pointers for |
| things that have only one call site and can't pass a null, etc). |
| |
| All the DEBUG stuff can probably be tossed, including the ioctl(). Either |
| that, or convert to a proper fault-injection system. |
| |
| exfat_remount does exactly one thing. Fix to actually deal with remount |
| options, particularly handling R/O correctly. For that matter, allow |
| R/O mounts in the first place. |
| |
| Figure out why the VFAT code used multi_sector_(read|write) but the |
| exfat code doesn't use it. The difference matters on SSDs with wear leveling. |
| |
| exfat_fat_sync(), exfat_buf_sync(), and sync_alloc_bitmap() |
| aren't called anyplace.... |
| |
| Create helper function for exfat_set_entry_time() and exfat_set_entry_type() |
| because it's sort of ugly to be calling the same functionn directly and |
| other code calling through the fs_func struc ponters... |
| |
| clean up the remaining vol_type checks, which are of two types: |
| some are ?: operators with magic numbers, and the rest are places |
| where we're doing stuff with '.' and '..'. |
| |
| Patches to: |
| Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Valdis Kletnieks <valdis.kletnieks@vt.edu> |