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 | ||
