diff options
Diffstat (limited to 'fs/ntfs/ChangeLog')
-rw-r--r-- | fs/ntfs/ChangeLog | 38 |
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 @@ | |||
1 | ToDo/Notes: | 1 | ToDo/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 | ||
23 | 2.1.25-WIP | 22 | 2.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 | ||
65 | 2.1.24 - Lots of bug fixes and support more clean journal states. | 79 | 2.1.24 - Lots of bug fixes and support more clean journal states. |
66 | 80 | ||