]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blame - drivers/staging/exfat/TODO
drm/amdgpu: fix gfx hang during suspend with video playback (v2)
[mirror_ubuntu-jammy-kernel.git] / drivers / staging / exfat / TODO
CommitLineData
6366e523
VK
1A laundry list of things that need looking at, most of which will
2require more work than the average checkpatch cleanup...
3
4Note that some of these entries may not be bugs - they're things
5that need to be looked at, and *possibly* fixed.
6
7Clean up the ffsCamelCase function names.
8
9Fix (thing)->flags to not use magic numbers - multiple offenders
10
11Sort out all the s32/u32/u8 nonsense - most of these should be plain int.
12
c48c9f7f
VK
13exfat_core.c - ffsReadFile - the goto err_out seem to leak a brelse().
14same for ffsWriteFile.
15
6366e523
VK
16All the calls to fs_sync() need to be looked at, particularly in the
17context of EXFAT_DELAYED_SYNC. Currently, if that's defined, we only
18flush to disk when sync() gets called. We should be doing at least
19metadata flushes at appropriate times.
c48c9f7f
VK
20
21ffsTruncateFile - if (old_size <= new_size) {
22That doesn't look right. How did it ever work? Are they relying on lazy
23block allocation when actual writes happen? If nothing else, it never
24does the 'fid->size = new_size' and do the inode update....
25
26ffsSetAttr() is just dangling in the breeze, not wired up at all...
6366e523
VK
27
28Convert global mutexes to a per-superblock mutex.
29
30Right now, we load exactly one UTF-8 table. Check to see
31if that plays nice with different codepage and iocharset values
32for simultanous mounts of different devices
33
34exfat_rmdir() checks for -EBUSY but ffsRemoveDir() doesn't return it.
35In fact, there's a complete lack of -EBUSY testing anywhere.
36
37There's probably a few missing checks for -EEXIST
38
39check return codes of sync_dirty_buffer()
40
41Why is remove_file doing a num_entries++??
42
43Double check a lot of can't-happen parameter checks (for null pointers for
44things that have only one call site and can't pass a null, etc).
45
46All the DEBUG stuff can probably be tossed, including the ioctl(). Either
47that, or convert to a proper fault-injection system.
48
49exfat_remount does exactly one thing. Fix to actually deal with remount
50options, particularly handling R/O correctly. For that matter, allow
51R/O mounts in the first place.
52
53Figure out why the VFAT code used multi_sector_(read|write) but the
54exfat code doesn't use it. The difference matters on SSDs with wear leveling.
55
56exfat_fat_sync(), exfat_buf_sync(), and sync_alloc_bitmap()
57aren't called anyplace....
58
59Create helper function for exfat_set_entry_time() and exfat_set_entry_type()
60because it's sort of ugly to be calling the same functionn directly and
61other code calling through the fs_func struc ponters...
62
63clean up the remaining vol_type checks, which are of two types:
64some are ?: operators with magic numbers, and the rest are places
65where we're doing stuff with '.' and '..'.
66
67Patches to:
68 Greg Kroah-Hartman <gregkh@linuxfoundation.org>
69 Valdis Kletnieks <valdis.kletnieks@vt.edu>