aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/filesystems/ntfs.txt15
-rw-r--r--fs/ntfs/ChangeLog25
-rw-r--r--fs/ntfs/Makefile2
-rw-r--r--fs/ntfs/attrib.c2
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
440Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog. 440Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog.
441 441
4422.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.
4422.1.22: 4572.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
252.1.23-WIP 252.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
9EXTRA_CFLAGS = -DNTFS_VERSION=\"2.1.23-WIP\" 9EXTRA_CFLAGS = -DNTFS_VERSION=\"2.1.23\"
10 10
11ifeq ($(CONFIG_NTFS_DEBUG),y) 11ifeq ($(CONFIG_NTFS_DEBUG),y)
12EXTRA_CFLAGS += -DDEBUG 12EXTRA_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;