diff options
Diffstat (limited to 'fs/ntfs/ChangeLog')
-rw-r--r-- | fs/ntfs/ChangeLog | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/fs/ntfs/ChangeLog b/fs/ntfs/ChangeLog index 9eecc9939dfe..e4fd6134244d 100644 --- a/fs/ntfs/ChangeLog +++ b/fs/ntfs/ChangeLog | |||
@@ -22,6 +22,76 @@ ToDo/Notes: | |||
22 | - Enable the code for setting the NT4 compatibility flag when we start | 22 | - Enable the code for setting the NT4 compatibility flag when we start |
23 | making NTFS 1.2 specific modifications. | 23 | making NTFS 1.2 specific modifications. |
24 | 24 | ||
25 | 2.1.24 - Lots of bug fixes and support more clean journal states. | ||
26 | |||
27 | - Support journals ($LogFile) which have been modified by chkdsk. This | ||
28 | means users can boot into Windows after we marked the volume dirty. | ||
29 | The Windows boot will run chkdsk and then reboot. The user can then | ||
30 | immediately boot into Linux rather than having to do a full Windows | ||
31 | boot first before rebooting into Linux and we will recognize such a | ||
32 | journal and empty it as it is clean by definition. | ||
33 | - Support journals ($LogFile) with only one restart page as well as | ||
34 | journals with two different restart pages. We sanity check both and | ||
35 | either use the only sane one or the more recent one of the two in the | ||
36 | case that both are valid. | ||
37 | - Modify fs/ntfs/malloc.h::ntfs_malloc_nofs() to do the kmalloc() based | ||
38 | allocations with __GFP_HIGHMEM, analogous to how the vmalloc() based | ||
39 | allocations are done. | ||
40 | - Add fs/ntfs/malloc.h::ntfs_malloc_nofs_nofail() which is analogous to | ||
41 | ntfs_malloc_nofs() but it performs allocations with __GFP_NOFAIL and | ||
42 | hence cannot fail. | ||
43 | - Use ntfs_malloc_nofs_nofail() in the two critical regions in | ||
44 | fs/ntfs/runlist.c::ntfs_runlists_merge(). This means we no longer | ||
45 | need to panic() if the allocation fails as it now cannot fail. | ||
46 | - Fix two nasty runlist merging bugs that had gone unnoticed so far. | ||
47 | Thanks to Stefano Picerno for the bug report. | ||
48 | - Remove two bogus BUG_ON()s from fs/ntfs/mft.c. | ||
49 | - Fix handling of valid but empty mapping pairs array in | ||
50 | fs/ntfs/runlist.c::ntfs_mapping_pairs_decompress(). | ||
51 | - Report unrepresentable inodes during ntfs_readdir() as KERN_WARNING | ||
52 | messages and include the inode number. Thanks to Yura Pakhuchiy for | ||
53 | pointing this out. | ||
54 | - Change ntfs_rl_truncate_nolock() to throw away the runlist if the new | ||
55 | length is zero. | ||
56 | - Add runlist.[hc]::ntfs_rl_punch_nolock() which punches a caller | ||
57 | specified hole into a runlist. | ||
58 | - Fix a bug in fs/ntfs/index.c::ntfs_index_lookup(). When the returned | ||
59 | index entry is in the index root, we forgot to set the @ir pointer in | ||
60 | the index context. Thanks to Yura Pakhuchiy for finding this bug. | ||
61 | - Remove bogus setting of PageError in ntfs_read_compressed_block(). | ||
62 | - Add fs/ntfs/attrib.[hc]::ntfs_resident_attr_value_resize(). | ||
63 | - Fix a bug in ntfs_map_runlist_nolock() where we forgot to protect | ||
64 | access to the allocated size in the ntfs inode with the size lock. | ||
65 | - Fix ntfs_attr_vcn_to_lcn_nolock() and ntfs_attr_find_vcn_nolock() to | ||
66 | return LCN_ENOENT when there is no runlist and the allocated size is | ||
67 | zero. | ||
68 | - Fix load_attribute_list() to handle the case of a NULL runlist. | ||
69 | - Fix handling of sparse attributes in ntfs_attr_make_non_resident(). | ||
70 | - Add BUG() checks to ntfs_attr_make_non_resident() and ntfs_attr_set() | ||
71 | to ensure that these functions are never called for compressed or | ||
72 | encrypted attributes. | ||
73 | - Fix cluster (de)allocators to work when the runlist is NULL and more | ||
74 | importantly to take a locked runlist rather than them locking it | ||
75 | which leads to lock reversal. | ||
76 | - Truncate {a,c,m}time to the ntfs supported time granularity when | ||
77 | updating the times in the inode in ntfs_setattr(). | ||
78 | - Fixup handling of sparse, compressed, and encrypted attributes in | ||
79 | fs/ntfs/inode.c::ntfs_read_locked_{,attr_,index_}inode(), | ||
80 | fs/ntfs/aops.c::ntfs_{read,write}page(). | ||
81 | - Make ntfs_write_block() not instantiate sparse blocks if they contain | ||
82 | only zeroes. | ||
83 | - Optimize fs/ntfs/aops.c::ntfs_write_block() by extending the page | ||
84 | lock protection over the buffer submission for i/o which allows the | ||
85 | removal of the get_bh()/put_bh() pairs for each buffer. | ||
86 | - Fix fs/ntfs/aops.c::ntfs_{read,write}_block() to handle the case | ||
87 | where a concurrent truncate has truncated the runlist under our feet. | ||
88 | - Fix page_has_buffers()/page_buffers() handling in fs/ntfs/aops.c. | ||
89 | - In fs/ntfs/aops.c::ntfs_end_buffer_async_read(), use a bit spin lock | ||
90 | in the first buffer head instead of a driver global spin lock to | ||
91 | improve scalability. | ||
92 | - Minor fix to error handling and error message display in | ||
93 | fs/ntfs/aops.c::ntfs_prepare_nonresident_write(). | ||
94 | |||
25 | 2.1.23 - Implement extension of resident files and make writing safe as well as | 95 | 2.1.23 - Implement extension of resident files and make writing safe as well as |
26 | many bug fixes, cleanups, and enhancements... | 96 | many bug fixes, cleanups, and enhancements... |
27 | 97 | ||