]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/ntfs/ChangeLog
sctp: Fix to handle SHUTDOWN in SHUTDOWN-PENDING state
[linux-2.6-omap-h63xx.git] / fs / ntfs / ChangeLog
index 02f44094bda9da4d0fc21b8c798243cc29750f05..37c11e1943722aeb351683c768b058dfeffae8fa 100644 (file)
@@ -1,9 +1,9 @@
 ToDo/Notes:
        - Find and fix bugs.
        - The only places in the kernel where a file is resized are
 ToDo/Notes:
        - Find and fix bugs.
        - The only places in the kernel where a file is resized are
-         ntfs_file_write*() and ntfs_truncate() for both of which i_sem is
+         ntfs_file_write*() and ntfs_truncate() for both of which i_mutex is
          held.  Just have to be careful in read-/writepage and other helpers
          held.  Just have to be careful in read-/writepage and other helpers
-         not running under i_sem that we play nice...  Also need to be careful
+         not running under i_mutex that we play nice.  Also need to be careful
          with initialized_size extension in ntfs_file_write*() and writepage.
          UPDATE: The only things that need to be checked are the compressed
          write and the other attribute resize/write cases like index
          with initialized_size extension in ntfs_file_write*() and writepage.
          UPDATE: The only things that need to be checked are the compressed
          write and the other attribute resize/write cases like index
@@ -16,8 +16,71 @@ ToDo/Notes:
          inode having been discarded already.  Whether this can actually ever
          happen is unclear however so it is worth waiting until someone hits
          the problem.
          inode having been discarded already.  Whether this can actually ever
          happen is unclear however so it is worth waiting until someone hits
          the problem.
-       - Enable the code for setting the NT4 compatibility flag when we start
-         making NTFS 1.2 specific modifications.
+
+2.1.29 - Fix a deadlock at mount time.
+
+       - During mount the VFS holds s_umount lock on the superblock.  So when
+         we try to empty the journal $LogFile contents by calling
+         ntfs_attr_set() when the machine does not have much memory and the
+         journal is large ntfs_attr_set() results in the VM trying to balance
+         dirty pages which in turn tries to that the s_umount lock and thus we
+         get a deadlock.  The solution is to not use ntfs_attr_set() and
+         instead do the zeroing by hand at the block level rather than page
+         cache level.
+       - Fix sparse warnings.
+
+2.1.28 - Fix a deadlock.
+
+       - Fix deadlock in fs/ntfs/inode.c::ntfs_put_inode().  Thanks to Sergey
+         Vlasov for the report and detailed analysis of the deadlock.  The fix
+         involved getting rid of ntfs_put_inode() altogether and hence NTFS no
+         longer has a ->put_inode super operation.
+
+2.1.27 - Various bug fixes and cleanups.
+
+       - Fix two compiler warnings on Alpha.  Thanks to Andrew Morton for
+         reporting them.
+       - Fix an (innocent) off-by-one error in the runlist code.
+       - Fix a buggette in an "should be impossible" case handling where we
+         continued the attribute lookup loop instead of aborting it.
+       - Use buffer_migrate_page() for the ->migratepage function of all ntfs
+         address space operations.
+       - Fix comparison of $MFT and $MFTMirr to not bail out when there are
+         unused, invalid mft records which are the same in both $MFT and
+         $MFTMirr.
+       - Add support for sparse files which have a compression unit of 0.
+       - Remove all the make_bad_inode() calls.  This should only be called
+         from read inode and new inode code paths.
+       - Limit name length in fs/ntfs/unistr.c::ntfs_nlstoucs() to maximum
+         allowed by NTFS, i.e. 255 Unicode characters, not including the
+         terminating NULL (which is not stored on disk).
+       - Improve comments on file attribute flags in fs/ntfs/layout.h.
+       - Fix a bug in fs/ntfs/inode.c::ntfs_read_locked_index_inode() where we
+         forgot to update a temporary variable so loading index inodes which
+         have an index allocation attribute failed.
+       - Add a missing call to flush_dcache_mft_record_page() in
+         fs/ntfs/inode.c::ntfs_write_inode().
+       - Handle the recently introduced -ENAMETOOLONG return value from
+         fs/ntfs/unistr.c::ntfs_nlstoucs() in fs/ntfs/namei.c::ntfs_lookup().
+       - Semaphore to mutex conversion.  (Ingo Molnar)
+
+2.1.26 - Minor bug fixes and updates.
+
+       - Fix a potential overflow in file.c where a cast to s64 was missing in
+         a left shift of a page index.
+       - The struct inode has had its i_sem semaphore changed to a mutex named
+         i_mutex.
+       - We have struct kmem_cache now so use it instead of the typedef
+         kmem_cache_t.  (Pekka Enberg)
+       - Implement support for sector sizes above 512 bytes (up to the maximum
+         supported by NTFS which is 4096 bytes).
+       - Do more detailed reporting of why we cannot mount read-write by
+         special casing the VOLUME_MODIFIED_BY_CHKDSK flag.
+       - Miscellaneous updates to layout.h.
+       - Cope with attribute list attribute having invalid flags.  Windows
+         copes with this and even chkdsk does not detect or fix this so we
+         have to cope with it, too.  Thanks to Pawel Kot for reporting the
+         problem.
 
 2.1.25 - (Almost) fully implement write(2) and truncate(2).
 
 
 2.1.25 - (Almost) fully implement write(2) and truncate(2).
 
@@ -319,7 +382,7 @@ ToDo/Notes:
          own locking so it does not matter if the vfs inode is locked.
        - Fix bug in mft record writing where we forgot to set the device in
          the buffers when mapping them after the VM had discarded them.
          own locking so it does not matter if the vfs inode is locked.
        - Fix bug in mft record writing where we forgot to set the device in
          the buffers when mapping them after the VM had discarded them.
-         Thanks to Martin MOKREJŠ for the bug report.
+         Thanks to Martin MOKREJÅ for the bug report.
 
 2.1.22 - Many bug and race fixes and error handling improvements.
 
 
 2.1.22 - Many bug and race fixes and error handling improvements.
 
@@ -373,7 +436,7 @@ ToDo/Notes:
          single one of them had an mst error.  (Thanks to Ken MacFerrin for
          the bug report.)
        - Fix error handling in fs/ntfs/quota.c::ntfs_mark_quotas_out_of_date()
          single one of them had an mst error.  (Thanks to Ken MacFerrin for
          the bug report.)
        - Fix error handling in fs/ntfs/quota.c::ntfs_mark_quotas_out_of_date()
-         where we failed to release i_sem on the $Quota/$Q attribute inode.
+         where we failed to release i_mutex on the $Quota/$Q attribute inode.
        - Fix bug in handling of bad inodes in fs/ntfs/namei.c::ntfs_lookup().
        - Add mapping of unmapped buffers to all remaining code paths, i.e.
          fs/ntfs/aops.c::ntfs_write_mst_block(), mft.c::ntfs_sync_mft_mirror(),
        - Fix bug in handling of bad inodes in fs/ntfs/namei.c::ntfs_lookup().
        - Add mapping of unmapped buffers to all remaining code paths, i.e.
          fs/ntfs/aops.c::ntfs_write_mst_block(), mft.c::ntfs_sync_mft_mirror(),
@@ -874,7 +937,7 @@ ToDo/Notes:
          clusters. (Philipp Thomas)
        - attrib.c::load_attribute_list(): Fix bug when initialized_size is a
          multiple of the block_size but not the cluster size. (Szabolcs
          clusters. (Philipp Thomas)
        - attrib.c::load_attribute_list(): Fix bug when initialized_size is a
          multiple of the block_size but not the cluster size. (Szabolcs
-         Szakacsits <szaka@sienet.hu>)
+         Szakacsits)
 
 2.1.2 - Important bug fixes aleviating the hangs in statfs.
 
 
 2.1.2 - Important bug fixes aleviating the hangs in statfs.
 
@@ -884,7 +947,7 @@ ToDo/Notes:
 
        - Add handling for initialized_size != data_size in compressed files.
        - Reduce function local stack usage from 0x3d4 bytes to just noise in
 
        - Add handling for initialized_size != data_size in compressed files.
        - Reduce function local stack usage from 0x3d4 bytes to just noise in
-         fs/ntfs/upcase.c. (Randy Dunlap <rdunlap@xenotime.net>)
+         fs/ntfs/upcase.c. (Randy Dunlap)
        - Remove compiler warnings for newer gcc.
        - Pages are no longer kmapped by mm/filemap.c::generic_file_write()
          around calls to ->{prepare,commit}_write.  Adapt NTFS appropriately
        - Remove compiler warnings for newer gcc.
        - Pages are no longer kmapped by mm/filemap.c::generic_file_write()
          around calls to ->{prepare,commit}_write.  Adapt NTFS appropriately
@@ -1201,11 +1264,11 @@ ToDo/Notes:
          the kernel. We probably want a kernel generic init_address_space()
          function...
        - Drop BKL from ntfs_readdir() after consultation with Al Viro. The
          the kernel. We probably want a kernel generic init_address_space()
          function...
        - Drop BKL from ntfs_readdir() after consultation with Al Viro. The
-         only caller of ->readdir() is vfs_readdir() which holds i_sem during
-         the call, and i_sem is sufficient protection against changes in the
-         directory inode (including ->i_size).
+         only caller of ->readdir() is vfs_readdir() which holds i_mutex
+         during the call, and i_mutex is sufficient protection against changes
+         in the directory inode (including ->i_size).
        - Use generic_file_llseek() for directories (as opposed to
        - Use generic_file_llseek() for directories (as opposed to
-         default_llseek()) as this downs i_sem instead of the BKL which is
+         default_llseek()) as this downs i_mutex instead of the BKL which is
          what we now need for exclusion against ->f_pos changes considering we
          no longer take the BKL in ntfs_readdir().
 
          what we now need for exclusion against ->f_pos changes considering we
          no longer take the BKL in ntfs_readdir().
 
@@ -1522,7 +1585,7 @@ tng-0.0.4 - Big changes, getting in line with Al Viro's comments.
          for reading $MFT (ntfs_mft_readpage). In the process create dedicated
          address space operations (ntfs_mft_aops) for $MFT inode mapping. Also
          removed the now superfluous exports from the kernel core patch.
          for reading $MFT (ntfs_mft_readpage). In the process create dedicated
          address space operations (ntfs_mft_aops) for $MFT inode mapping. Also
          removed the now superfluous exports from the kernel core patch.
-       - Fix a bug where kfree() was used insted of ntfs_free().
+       - Fix a bug where kfree() was used instead of ntfs_free().
        - Change map_mft_record() to take ntfs_inode as argument instead of
          vfs inode. Dito for unmap_mft_record(). Adapt all callers.
        - Add pointer to ntfs_volume to ntfs_inode.
        - Change map_mft_record() to take ntfs_inode as argument instead of
          vfs inode. Dito for unmap_mft_record(). Adapt all callers.
        - Add pointer to ntfs_volume to ntfs_inode.