X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=fs%2Fntfs%2FChangeLog;h=0302c351217f4f5309d072573a959d41b35fdc42;hb=c7b5ebbddf7bcd3651947760f423e3783bbe6573;hp=fa1442d2f262c3bca45442dc685a44630d2fcde0;hpb=a2c21200f1c81b08cb55e417b68150bba439b646;p=linux-2.6.git diff --git a/fs/ntfs/ChangeLog b/fs/ntfs/ChangeLog index fa1442d2f..0302c3512 100644 --- a/fs/ntfs/ChangeLog +++ b/fs/ntfs/ChangeLog @@ -1,11 +1,6 @@ ToDo/Notes: - Find and fix bugs. - Checkpoint or disable the user space journal ($UsnJrnl). - - Implement sops->dirty_inode() to implement {a,m,c}time updates and - such things. This should probably just flag the ntfs inode such that - sops->write_inode(), i.e. ntfs_write_inode(), will copy the times - when it is invoked rather than having to update the mft record - every time. - In between ntfs_prepare/commit_write, need exclusion between simultaneous file extensions. Need perhaps an NInoResizeUnderway() flag which we can set in ntfs_prepare_write() and clear again in @@ -26,6 +21,114 @@ ToDo/Notes: - Enable the code for setting the NT4 compatibility flag when we start making NTFS 1.2 specific modifications. +2.1.20 - Fix a stupid bug in ntfs_attr_reinit_search_ctx(). + + - Fix stupid bug in fs/ntfs/attrib.c::ntfs_attr_reinit_search_ctx() + where we did not clear ctx->al_entry but it was still set due to + changes in ntfs_attr_lookup() and ntfs_external_attr_find() in + particular. + - Fix another stupid bug in fs/ntfs/attrib.c::ntfs_external_attr_find() + where we forgot to unmap the extent mft record when we had finished + enumerating an attribute which caused a bug check to trigger when the + VFS calls ->clear_inode. + +2.1.19 - Many cleanups, improvements, and a minor bug fix. + + - Update ->setattr (fs/ntfs/inode.c::ntfs_setattr()) to refuse to + change the uid, gid, and mode of an inode as we do not support NTFS + ACLs yet. + - Remove BKL use from ntfs_setattr() syncing up with the rest of the + kernel. + - Get rid of the ugly transparent union in fs/ntfs/dir.c::ntfs_readdir() + and ntfs_filldir() as per suggestion from Al Viro. + - Change '\0' and L'\0' to simply 0 as per advice from Linus Torvalds. + - Update ->truncate (fs/ntfs/inode.c::ntfs_truncate()) to check if the + inode size has changed and to only output an error if so. + - Rename fs/ntfs/attrib.h::attribute_value_length() to ntfs_attr_size(). + - Add le{16,32,64} as well as sle{16,32,64} data types to + fs/ntfs/types.h. + - Change ntfschar to be le16 instead of u16 in fs/ntfs/types.h. + - Add le versions of VCN, LCN, and LSN called leVCN, leLCN, and leLSN, + respectively, to fs/ntfs/types.h. + - Update endianness conversion macros in fs/ntfs/endian.h to use the + new types as appropriate. + - Do proper type casting when using sle64_to_cpup() in fs/ntfs/dir.c + and index.c. + - Add leMFT_REF data type to fs/ntfs/layout.h. + - Update all NTFS header files with the new little endian data types. + Affected files are fs/ntfs/layout.h, logfile.h, and time.h. + - Do proper type casting when using ntfs_is_*_recordp() in + fs/ntfs/logfile.c, mft.c, and super.c. + - Fix all the sparse bitwise warnings. Had to change all the typedef + enums storing little endian values to simple enums plus a typedef for + the datatype to make sparse happy. + - Fix a bug found by the new sparse bitwise warnings where the default + upcase table was defined as a pointer to wchar_t rather than ntfschar + in fs/ntfs/ntfs.h and super.c. + - Change {const_,}cpu_to_le{16,32}(0) to just 0 as suggested by Al Viro. + +2.1.18 - Fix scheduling latencies at mount time as well as an endianness bug. + + - Remove vol->nr_mft_records as it was pretty meaningless and optimize + the calculation of total/free inodes as used by statfs(). + - Fix scheduling latencies in ntfs_fill_super() by dropping the BKL + because the code itself is using the ntfs_lock semaphore which + provides safe locking. (Ingo Molnar) + - Fix a potential bug in fs/ntfs/mft.c::map_extent_mft_record() that + could occur in the future for when we start closing/freeing extent + inodes if we don't set base_ni->ext.extent_ntfs_inos to NULL after + we free it. + - Rename {find,lookup}_attr() to ntfs_attr_{find,lookup}() as well as + find_external_attr() to ntfs_external_attr_find() to cleanup the + namespace a bit and to be more consistent with libntfs. + - Rename {{re,}init,get,put}_attr_search_ctx() to + ntfs_attr_{{re,}init,get,put}_search_ctx() as well as the type + attr_search_context to ntfs_attr_search_ctx. + - Force use of ntfs_attr_find() in ntfs_attr_lookup() when searching + for the attribute list attribute itself. + - Fix endianness bug in ntfs_external_attr_find(). + - Change ntfs_{external_,}attr_find() to return 0 on success, -ENOENT + if the attribute is not found, and -EIO on real error. In the case + of -ENOENT, the search context is updated to describe the attribute + before which the attribute being searched for would need to be + inserted if such an action were to be desired and in the case of + ntfs_external_attr_find() the search context is also updated to + indicate the attribute list entry before which the attribute list + entry of the attribute being searched for would need to be inserted + if such an action were to be desired. Also make ntfs_find_attr() + static and remove its prototype from attrib.h as it is not used + anywhere other than attrib.c. Update ntfs_attr_lookup() and all + callers of ntfs_{external,}attr_{find,lookup}() for the new return + values. + - Minor cleanup of fs/ntfs/inode.c::ntfs_init_locked_inode(). + +2.1.17 - Fix bugs in mount time error code paths and other updates. + + - Implement bitmap modification code (fs/ntfs/bitmap.[hc]). This + includes functions to set/clear a single bit or a run of bits. + - Add fs/ntfs/attrib.[hc]::ntfs_find_vcn() which returns the locked + runlist element containing a particular vcn. It also takes care of + mapping any needed runlist fragments. + - Implement cluster (de-)allocation code (fs/ntfs/lcnalloc.[hc]). + - Load attribute definition table from $AttrDef at mount time. + - Fix bugs in mount time error code paths involving (de)allocation of + the default and volume upcase tables. + - Remove ntfs_nr_mounts as it is no longer used. + +2.1.16 - Implement access time updates, file sync, async io, and read/writev. + + - Add support for readv/writev and aio_read/aio_write (fs/ntfs/file.c). + This is done by setting the appropriate file operations pointers to + the generic helper functions provided by mm/filemap.c. + - Implement fsync, fdatasync, and msync both for files (fs/ntfs/file.c) + and directories (fs/ntfs/dir.c). + - Add support for {a,m,c}time updates to inode.c::ntfs_write_inode(). + Note, except for the root directory and any other system files opened + by the user, the system files will not have their access times + updated as they are only accessed at the inode level an hence the + file level functions which cause the times to be updated are never + invoked. + 2.1.15 - Invalidate quotas when (re)mounting read-write. - Add new element itype.index.collation_rule to the ntfs inode @@ -434,7 +537,7 @@ ToDo/Notes: cannot set any write related options when the driver is compiled read-only. - Optimize block resolution in fs/ntfs/aops.c::ntfs_read_block() to - cache the current run list element. This should improve performance + cache the current runlist element. This should improve performance when reading very large and/or very fragmented data. 2.0.16 - Convert access to $MFT/$BITMAP to attribute inode API. @@ -482,9 +585,9 @@ ToDo/Notes: - Change fs/ntfs/super.c::ntfs_statfs() to not rely on BKL by moving the locking out of super.c::get_nr_free_mft_records() and taking and dropping the mftbmp_lock rw_semaphore in ntfs_statfs() itself. - - Bring attribute run list merging code (fs/ntfs/attrib.c) in sync with + - Bring attribute runlist merging code (fs/ntfs/attrib.c) in sync with current userspace ntfs library code. This means that if a merge - fails the original run lists are always left unmodified instead of + fails the original runlists are always left unmodified instead of being silently corrupted. - Misc typo fixes. @@ -676,7 +779,7 @@ ToDo/Notes: appropriately. - Update to 2.5.9 kernel (preserving backwards compatibility) by replacing all occurences of page->buffers with page_buffers(page). - - Fix minor bugs in run list merging, also minor cleanup. + - Fix minor bugs in runlist merging, also minor cleanup. - Updates to bootsector layout and mft mirror contents descriptions. - Small bug fix in error detection in unistr.c and some cleanups. - Grow name buffer allocations in unistr.c in aligned mutlipled of 64 @@ -699,12 +802,12 @@ ToDo/Notes: initialized_size vs data_size (i.e. i_size). Done are mft.c::ntfs_mft_readpage(), aops.c::end_buffer_read_index_async(), and attrib.c::load_attribute_list(). - - Lock the run list in attrib.c::load_attribute_list() while using it. + - Lock the runlist in attrib.c::load_attribute_list() while using it. - Fix memory leak in ntfs_file_read_compressed_block() and generally clean up compress.c a little, removing some uncommented/unused debug code. - Tidy up dir.c a little bit. - - Don't bother getting the run list in inode.c::ntfs_read_inode(). + - Don't bother getting the runlist in inode.c::ntfs_read_inode(). - Merge mft.c::ntfs_mft_readpage() and aops.c::ntfs_index_readpage() creating aops.c::ntfs_mst_readpage(), improving the handling of holes and overflow in the process and implementing the correct @@ -734,7 +837,7 @@ tng-0.0.8 - 08/03/2002 - Now using BitKeeper, http://linux-ntfs.bkbits.net/ - Apply kludge in ntfs_read_inode(), setting i_nlink to 1 for directories. Without this the "find" utility gets very upset which is fair enough as Linux/Unix do not support directory hard links. - - Further run list merging work. (Richard Russon) + - Further runlist merging work. (Richard Russon) - Backwards compatibility for gcc-2.95. (Richard Russon) - Update to kernel 2.5.5-pre1 and rediff the now tiny patch. - Convert to new file system declaration using ->ntfs_get_sb() and @@ -789,7 +892,7 @@ tng-0.0.8 - 08/03/2002 - Now using BitKeeper, http://linux-ntfs.bkbits.net/ which is then referenced but not copied. - Rename run_list structure to run_list_element and create a new run_list structure containing a pointer to a run_list_element - structure and a read/write semaphore. Adapt all users of run lists + structure and a read/write semaphore. Adapt all users of runlists to new scheme and take and release the lock as needed. This fixes a nasty race as the run_list changes even when inodes are locked for reading and even when the inode isn't locked at all, so we really @@ -820,7 +923,7 @@ tng-0.0.7 - 13/02/2002 - The driver is now feature complete for read-only! - Cleanup mft.c and it's debug/error output in particular. Fix a minor bug in mapping of extent inodes. Update all the comments to fit all the recent code changes. - - Modify vcn_to_lcn() to cope with entirely unmapped run lists. + - Modify vcn_to_lcn() to cope with entirely unmapped runlists. - Cleanups in compress.c, mostly comments and folding help. - Implement attrib.c::map_run_list() as a generic helper. - Make compress.c::ntfs_file_read_compressed_block() use map_run_list() @@ -846,11 +949,11 @@ tng-0.0.7 - 13/02/2002 - The driver is now feature complete for read-only! pass in the upcase table and its length. These can be gotten from ctx->ntfs_ino->vol->upcase{_len}. Update all callers. - Cleanups in attrib.c. - - Implement merging of run lists, attrib.c::merge_run_lists() and its + - Implement merging of runlists, attrib.c::merge_run_lists() and its helpers. (Richard Russon) - - Attribute lists part 2, attribute extents and multi part run lists: + - Attribute lists part 2, attribute extents and multi part runlists: enable proper support for LCN_RL_NOT_MAPPED and automatic mapping of - further run list parts via attrib.c::map_run_list(). + further runlist parts via attrib.c::map_run_list(). - Tiny endianness bug fix in decompress_mapping_pairs(). tng-0.0.6 - Encrypted directories, bug fixes, cleanups, debugging enhancements. @@ -882,7 +985,7 @@ tng-0.0.6 - Encrypted directories, bug fixes, cleanups, debugging enhancements. support dollar signs in the names of variables/constants. Attribute types now start with AT_ instead of $ and $I30 is now just I30. - Cleanup ntfs_lookup() and add consistency check of sequence numbers. - - Load complete run list for $MFT/$BITMAP during mount and cleanup + - Load complete runlist for $MFT/$BITMAP during mount and cleanup access functions. This means we now cope with $MFT/$BITMAP being spread accross several mft records. - Disable modification of mft_zone_multiplier on remount. We can always @@ -915,11 +1018,11 @@ tng-0.0.4 - Big changes, getting in line with Al Viro's comments. parameter list. Pass either READ or WRITE to this, each has the obvious meaning. - General cleanups to allow for easier folding in vi. - - attrib.c::decompress_mapping_pairs() now accepts the old run list + - attrib.c::decompress_mapping_pairs() now accepts the old runlist argument, and invokes attrib.c::merge_run_lists() to merge the old - and the new run lists. + and the new runlists. - Removed attrib.c::find_first_attr(). - - Implemented loading of attribute list and complete run list for $MFT. + - Implemented loading of attribute list and complete runlist for $MFT. This means we now cope with $MFT being spread across several mft records. - Adapt to 2.5.2-pre9 and the changed create_empty_buffers() syntax. @@ -957,7 +1060,7 @@ tng-0.0.4 - Big changes, getting in line with Al Viro's comments. tng-0.0.3 - Cleanups, enhancements, bug fixes. - Work on attrib.c::decompress_mapping_pairs() to detect base extents - and setup the run list appropriately using knowledge provided by the + and setup the runlist appropriately using knowledge provided by the sizes in the base attribute record. - Balance the get_/put_attr_search_ctx() calls so we don't leak memory any more.