Commit dd072330 authored by Anton Altaparmakov's avatar Anton Altaparmakov

NTFS: Implement fs/ntfs/inode.[hc]::ntfs_truncate(). It only supports

      uncompressed and unencrypted files.
Signed-off-by: default avatarAnton Altaparmakov <aia21@cantab.net>
parent 2d86829b
...@@ -3,16 +3,14 @@ ToDo/Notes: ...@@ -3,16 +3,14 @@ ToDo/Notes:
- In between ntfs_prepare/commit_write, need exclusion between - In between ntfs_prepare/commit_write, need exclusion between
simultaneous file extensions. This is given to us by holding i_sem simultaneous file extensions. This is given to us by holding i_sem
on the inode. The only places in the kernel when a file is resized on the inode. The only places in the kernel when a file is resized
are prepare/commit write and truncate for both of which i_sem is are prepare/commit write and ntfs_truncate() for both of which i_sem
held. Just have to be careful in readpage/writepage and all other is held. Just have to be careful in read-/writepage and other helpers
helpers not running under i_sem that we play nice... not running under i_sem that we play nice... Also need to be careful
Also need to be careful with initialized_size extention in with initialized_size extention in ntfs_prepare_write and writepage.
ntfs_prepare_write. Basically, just be _very_ careful in this code... UPDATE: The only things that need to be checked are
UPDATE: The only things that need to be checked are read/writepage prepare/commit_write as well as the compressed write and the other
which do not hold i_sem. Note writepage cannot change i_size but it attribute resize/write cases like index attributes, etc. For now
needs to cope with a concurrent i_size change, just like readpage. none of these are implemented so are safe.
Also both need to cope with concurrent changes to the other sizes,
i.e. initialized/allocated/compressed size, as well.
- Implement mft.c::sync_mft_mirror_umount(). We currently will just - Implement mft.c::sync_mft_mirror_umount(). We currently will just
leave the volume dirty on umount if the final iput(vol->mft_ino) leave the volume dirty on umount if the final iput(vol->mft_ino)
causes a write of any mirrored mft records due to the mft mirror causes a write of any mirrored mft records due to the mft mirror
...@@ -50,6 +48,8 @@ ToDo/Notes: ...@@ -50,6 +48,8 @@ ToDo/Notes:
- Add fs/ntfs/attrib.[hc]::ntfs_attr_extend_allocation(), a function to - Add fs/ntfs/attrib.[hc]::ntfs_attr_extend_allocation(), a function to
extend the allocation of an attributes. Optionally, the data size, extend the allocation of an attributes. Optionally, the data size,
but not the initialized size can be extended, too. but not the initialized size can be extended, too.
- Implement fs/ntfs/inode.[hc]::ntfs_truncate(). It only supports
uncompressed and unencrypted files.
2.1.24 - Lots of bug fixes and support more clean journal states. 2.1.24 - Lots of bug fixes and support more clean journal states.
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment