diff options
-rw-r--r-- | Documentation/filesystems/ntfs.txt | 15 | ||||
-rw-r--r-- | fs/ntfs/ChangeLog | 25 | ||||
-rw-r--r-- | fs/ntfs/Makefile | 2 | ||||
-rw-r--r-- | fs/ntfs/attrib.c | 2 |
4 files changed, 23 insertions, 21 deletions
diff --git a/Documentation/filesystems/ntfs.txt b/Documentation/filesystems/ntfs.txt index cb3cb8c06e9d..1415b96ed491 100644 --- a/Documentation/filesystems/ntfs.txt +++ b/Documentation/filesystems/ntfs.txt | |||
@@ -439,6 +439,21 @@ ChangeLog | |||
439 | 439 | ||
440 | Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. | 440 | Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. |
441 | 441 | ||
442 | 2.1.23: | ||
443 | - Stamp the user space journal, aka transaction log, aka $UsnJrnl, if | ||
444 | it is present and active thus telling Windows and applications using | ||
445 | the transaction log that changes can have happened on the volume | ||
446 | which are not recorded in $UsnJrnl. | ||
447 | - Detect the case when Windows has been hibernated (suspended to disk) | ||
448 | and if this is the case do not allow (re)mounting read-write to | ||
449 | prevent data corruption when you boot back into the suspended | ||
450 | Windows session. | ||
451 | - Implement extension of resident files using the normal file write | ||
452 | code paths, i.e. most very small files can be extended to be a little | ||
453 | bit bigger but not by much. | ||
454 | - Improve handling of ntfs volumes with errors and strange boot sectors | ||
455 | in particular. | ||
456 | - Fix various bugs. | ||
442 | 2.1.22: | 457 | 2.1.22: |
443 | - Improve handling of ntfs volumes with errors. | 458 | - Improve handling of ntfs volumes with errors. |
444 | - Fix various bugs and race conditions. | 459 | - Fix various bugs and race conditions. |
diff --git a/fs/ntfs/ChangeLog b/fs/ntfs/ChangeLog index a6d2b943a148..3d2cac4061d6 100644 --- a/fs/ntfs/ChangeLog +++ b/fs/ntfs/ChangeLog | |||
@@ -22,35 +22,22 @@ ToDo/Notes: | |||
22 | - Enable the code for setting the NT4 compatibility flag when we start | 22 | - Enable the code for setting the NT4 compatibility flag when we start |
23 | making NTFS 1.2 specific modifications. | 23 | making NTFS 1.2 specific modifications. |
24 | 24 | ||
25 | 2.1.23-WIP | 25 | 2.1.23 - Implement extension of resident files and make writing safe as well as |
26 | many bug fixes, cleanups, and enhancements... | ||
26 | 27 | ||
27 | - Add printk rate limiting for ntfs_warning() and ntfs_error() when | 28 | - Add printk rate limiting for ntfs_warning() and ntfs_error() when |
28 | compiled without debug. This avoids a possible denial of service | 29 | compiled without debug. This avoids a possible denial of service |
29 | attack. Thanks to Carl-Daniel Hailfinger from SuSE for pointing this | 30 | attack. Thanks to Carl-Daniel Hailfinger from SuSE for pointing this |
30 | out. | 31 | out. |
31 | - Fix compilation warnings on ia64. (Randy Dunlap) | 32 | - Fix compilation warnings on ia64. (Randy Dunlap) |
32 | - Use i_size_read() in fs/ntfs/attrib.c::ntfs_attr_set(). | 33 | - Use i_size_{read,write}() instead of reading i_size by hand and cache |
33 | - Use i_size_read() in fs/ntfs/logfile.c::ntfs_{check,empty}_logfile(). | 34 | the value where apropriate. |
34 | - Use i_size_read() once and then use the cached value in | ||
35 | fs/ntfs/lcnalloc.c::ntfs_cluster_alloc(). | ||
36 | - Use i_size_read() in fs/ntfs/file.c::ntfs_file_open(). | ||
37 | - Add size_lock to the ntfs_inode structure. This is an rw spinlock | 35 | - Add size_lock to the ntfs_inode structure. This is an rw spinlock |
38 | and it locks against access to the inode sizes. Note, ->size_lock | 36 | and it locks against access to the inode sizes. Note, ->size_lock |
39 | is also accessed from irq context so you must use the _irqsave and | 37 | is also accessed from irq context so you must use the _irqsave and |
40 | _irqrestore lock and unlock functions, respectively. | 38 | _irqrestore lock and unlock functions, respectively. Protect all |
41 | - Use i_size_read() in fs/ntfs/compress.c at the start of the read and | 39 | accesses to allocated_size, initialized_size, and compressed_size. |
42 | use the cached value afterwards. Cache the initialized_size in the | ||
43 | same way and protect access to the two sizes using the size_lock. | ||
44 | - Use i_size_read() in fs/ntfs/dir.c once and then use the cached | ||
45 | value afterwards. | ||
46 | - Use i_size_read() in fs/ntfs/super.c once and then use the cached | ||
47 | value afterwards. Cache the initialized_size in the same way and | ||
48 | protect access to the two sizes using the size_lock. | ||
49 | - Minor optimization to fs/ntfs/super.c::ntfs_statfs() and its helpers. | 40 | - Minor optimization to fs/ntfs/super.c::ntfs_statfs() and its helpers. |
50 | - Use i_size_read() in fs/ntfs/inode.c once and then use the cached | ||
51 | value afterwards when reading the size of the bitmap inode. | ||
52 | - Use i_size_{read,write}() in fs/ntfs/{aops.c,mft.c} and protect | ||
53 | access to the i_size and other size fields using the size_lock. | ||
54 | - Implement extension of resident files in the regular file write code | 41 | - Implement extension of resident files in the regular file write code |
55 | paths (fs/ntfs/aops.c::ntfs_{prepare,commit}_write()). At present | 42 | paths (fs/ntfs/aops.c::ntfs_{prepare,commit}_write()). At present |
56 | this only works until the data attribute becomes too big for the mft | 43 | this only works until the data attribute becomes too big for the mft |
diff --git a/fs/ntfs/Makefile b/fs/ntfs/Makefile index 59f9606a82a1..f083f27d8b69 100644 --- a/fs/ntfs/Makefile +++ b/fs/ntfs/Makefile | |||
@@ -6,7 +6,7 @@ ntfs-objs := aops.o attrib.o collate.o compress.o debug.o dir.o file.o \ | |||
6 | index.o inode.o mft.o mst.o namei.o runlist.o super.o sysctl.o \ | 6 | index.o inode.o mft.o mst.o namei.o runlist.o super.o sysctl.o \ |
7 | unistr.o upcase.o | 7 | unistr.o upcase.o |
8 | 8 | ||
9 | EXTRA_CFLAGS = -DNTFS_VERSION=\"2.1.23-WIP\" | 9 | EXTRA_CFLAGS = -DNTFS_VERSION=\"2.1.23\" |
10 | 10 | ||
11 | ifeq ($(CONFIG_NTFS_DEBUG),y) | 11 | ifeq ($(CONFIG_NTFS_DEBUG),y) |
12 | EXTRA_CFLAGS += -DDEBUG | 12 | EXTRA_CFLAGS += -DDEBUG |
diff --git a/fs/ntfs/attrib.c b/fs/ntfs/attrib.c index 543d47fa5fc9..cd0f9e740b14 100644 --- a/fs/ntfs/attrib.c +++ b/fs/ntfs/attrib.c | |||
@@ -1324,7 +1324,7 @@ int ntfs_attr_make_non_resident(ntfs_inode *ni) | |||
1324 | if (IS_ERR(rl)) { | 1324 | if (IS_ERR(rl)) { |
1325 | err = PTR_ERR(rl); | 1325 | err = PTR_ERR(rl); |
1326 | ntfs_debug("Failed to allocate cluster%s, error code " | 1326 | ntfs_debug("Failed to allocate cluster%s, error code " |
1327 | "%i.\n", (new_size >> | 1327 | "%i.", (new_size >> |
1328 | vol->cluster_size_bits) > 1 ? "s" : "", | 1328 | vol->cluster_size_bits) > 1 ? "s" : "", |
1329 | err); | 1329 | err); |
1330 | goto page_err_out; | 1330 | goto page_err_out; |