aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ntfs/ChangeLog
diff options
context:
space:
mode:
authorAnton Altaparmakov <aia21@cantab.net>2005-10-11 10:40:40 -0400
committerAnton Altaparmakov <aia21@cantab.net>2005-10-11 10:40:40 -0400
commit98b270362bb9ea6629732e7f5b65b8a6ce4743c7 (patch)
tree2ca1f46a426628a16cc8cef2a4d4fba657d7ac1f /fs/ntfs/ChangeLog
parent29f5f3c141c58b0a4c0765c77da612271875bcce (diff)
NTFS: The big ntfs write(2) rewrite has arrived. We now implement our own
file operations ->write(), ->aio_write(), and ->writev() for regular files. This replaces the old use of generic_file_write(), et al and the address space operations ->prepare_write and ->commit_write. This means that both sparse and non-sparse (unencrypted and uncompressed) files can now be extended using the normal write(2) code path. There are two limitations at present and these are that we never create sparse files and that we only have limited support for highly fragmented files, i.e. ones whose data attribute is split across multiple extents. When such a case is encountered, EOPNOTSUPP is returned. Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
Diffstat (limited to 'fs/ntfs/ChangeLog')
-rw-r--r--fs/ntfs/ChangeLog38
1 files changed, 26 insertions, 12 deletions
diff --git a/fs/ntfs/ChangeLog b/fs/ntfs/ChangeLog
index 3b8ff2318085..03015c7b236c 100644
--- a/fs/ntfs/ChangeLog
+++ b/fs/ntfs/ChangeLog
@@ -1,16 +1,15 @@
1ToDo/Notes: 1ToDo/Notes:
2 - Find and fix bugs. 2 - Find and fix bugs.
3 - In between ntfs_prepare/commit_write, need exclusion between 3 - The only places in the kernel where a file is resized are
4 simultaneous file extensions. This is given to us by holding i_sem 4 ntfs_file_write*() and ntfs_truncate() for both of which i_sem is
5 on the inode. The only places in the kernel when a file is resized 5 held. Just have to be careful in read-/writepage and other helpers
6 are prepare/commit write and ntfs_truncate() for both of which i_sem
7 is held. Just have to be careful in read-/writepage and other helpers
8 not running under i_sem that we play nice... Also need to be careful 6 not running under i_sem that we play nice... Also need to be careful
9 with initialized_size extention in ntfs_prepare_write and writepage. 7 with initialized_size extension in ntfs_file_write*() and writepage.
10 UPDATE: The only things that need to be checked are 8 UPDATE: The only things that need to be checked are the compressed
11 prepare/commit_write as well as the compressed write and the other 9 write and the other attribute resize/write cases like index
12 attribute resize/write cases like index attributes, etc. For now 10 attributes, etc. For now none of these are implemented so are safe.
13 none of these are implemented so are safe. 11 - Implement filling in of holes in aops.c::ntfs_writepage() and its
12 helpers.
14 - Implement mft.c::sync_mft_mirror_umount(). We currently will just 13 - Implement mft.c::sync_mft_mirror_umount(). We currently will just
15 leave the volume dirty on umount if the final iput(vol->mft_ino) 14 leave the volume dirty on umount if the final iput(vol->mft_ino)
16 causes a write of any mirrored mft records due to the mft mirror 15 causes a write of any mirrored mft records due to the mft mirror
@@ -20,7 +19,7 @@ ToDo/Notes:
20 - Enable the code for setting the NT4 compatibility flag when we start 19 - Enable the code for setting the NT4 compatibility flag when we start
21 making NTFS 1.2 specific modifications. 20 making NTFS 1.2 specific modifications.
22 21
232.1.25-WIP 222.1.25 - (Almost) fully implement write(2) and truncate(2).
24 23
25 - Change ntfs_map_runlist_nolock(), ntfs_attr_find_vcn_nolock() and 24 - Change ntfs_map_runlist_nolock(), ntfs_attr_find_vcn_nolock() and
26 {__,}ntfs_cluster_free() to also take an optional attribute search 25 {__,}ntfs_cluster_free() to also take an optional attribute search
@@ -49,7 +48,12 @@ ToDo/Notes:
49 extend the allocation of an attributes. Optionally, the data size, 48 extend the allocation of an attributes. Optionally, the data size,
50 but not the initialized size can be extended, too. 49 but not the initialized size can be extended, too.
51 - Implement fs/ntfs/inode.[hc]::ntfs_truncate(). It only supports 50 - Implement fs/ntfs/inode.[hc]::ntfs_truncate(). It only supports
52 uncompressed and unencrypted files. 51 uncompressed and unencrypted files and it never creates sparse files
52 at least for the moment (making a file sparse requires us to modify
53 its directory entries and we do not support directory operations at
54 the moment). Also, support for highly fragmented files, i.e. ones
55 whose data attribute is split across multiple extents, is severly
56 limited. When such a case is encountered, EOPNOTSUPP is returned.
53 - Enable ATTR_SIZE attribute changes in ntfs_setattr(). This completes 57 - Enable ATTR_SIZE attribute changes in ntfs_setattr(). This completes
54 the initial implementation of file truncation. Now both open(2)ing 58 the initial implementation of file truncation. Now both open(2)ing
55 a file with the O_TRUNC flag and the {,f}truncate(2) system calls 59 a file with the O_TRUNC flag and the {,f}truncate(2) system calls
@@ -61,6 +65,16 @@ ToDo/Notes:
61 and cond_resched() in the main loop as we could be dirtying a lot of 65 and cond_resched() in the main loop as we could be dirtying a lot of
62 pages and this ensures we play nice with the VM and the system as a 66 pages and this ensures we play nice with the VM and the system as a
63 whole. 67 whole.
68 - Implement file operations ->write, ->aio_write, ->writev for regular
69 files. This replaces the old use of generic_file_write(), et al and
70 the address space operations ->prepare_write and ->commit_write.
71 This means that both sparse and non-sparse (unencrypted and
72 uncompressed) files can now be extended using the normal write(2)
73 code path. There are two limitations at present and these are that
74 we never create sparse files and that we only have limited support
75 for highly fragmented files, i.e. ones whose data attribute is split
76 across multiple extents. When such a case is encountered,
77 EOPNOTSUPP is returned.
64 78
652.1.24 - Lots of bug fixes and support more clean journal states. 792.1.24 - Lots of bug fixes and support more clean journal states.
66 80