|
|
Subscribe / Log in / New account

NTFS 2.0.9 update

Linus, please do a

	bk pull http://linux-ntfs.bkbits.net/ntfs-tng-2.5

Thanks! This is a small update to ntfs, mostly just to remove the compile
warnings generated by the now unused variables after Rusty Russell's changes.
And a few other bits and pieces (just cleanups).

The only code change is a micro optimization in the decompression engine
(thanks to Rusty for spotting it).

Best regards,

	Anton
-- 
Anton Altaparmakov <aia21 at cantab.net> (replace at with @)
Linux NTFS maintainer / IRC: #ntfs on irc.openprojects.net
WWW: http://linux-ntfs.sf.net/, http://www-stu.christs.cam.ac.uk/~aia21/

===================================================================

This will update the following files:

 Documentation/filesystems/ntfs.txt |    6 ++++++
 fs/ntfs/ChangeLog                  |   13 ++++++++++++-
 fs/ntfs/Makefile                   |    2 +-
 fs/ntfs/compress.c                 |   21 ++++++++++++---------
 fs/ntfs/dir.c                      |   11 ++++++-----
 fs/ntfs/layout.h                   |    3 +--
 fs/ntfs/namei.c                    |    5 +++--
 7 files changed, 41 insertions(+), 20 deletions(-)

through these ChangeSets:

<aia21@cantab.net> (02/06/19 1.548)
   NTFS: 2.0.9 release. Decompression engine now uses a single buffer and other cleanups.
   - Remove unused variables left over after Rusty's patch to the decompression
     engine.
   - Change buffer size in ntfs_readdir()/ntfs_filldir() to use
     NLS_MAX_CHARSET_SIZE.
   - Miscellaneous minor cleanups to comments.

<aia21@cantab.net> (02/06/19 1.549)
   NTFS: Fix typo.


diff -Nru a/Documentation/filesystems/ntfs.txt b/Documentation/filesystems/ntfs.txt
--- a/Documentation/filesystems/ntfs.txt	Wed Jun 19 11:27:29 2002
+++ b/Documentation/filesystems/ntfs.txt	Wed Jun 19 11:27:29 2002
@@ -247,6 +247,12 @@
 
 Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog.
 
+2.0.9:
+	- Change decompression engine to use a single buffer. This should not
+	  affect performance except perhaps on the most heavy i/o on SMP
+	  systems when accessing multiple compressed files from multiple
+	  devices simultaneously.
+	- Minor updates and cleanups.
 2.0.8:
 	- Remove now obsolete show_inodes and posix mount option(s).
 	- Restore show_sys_files mount option.
diff -Nru a/fs/ntfs/ChangeLog b/fs/ntfs/ChangeLog
--- a/fs/ntfs/ChangeLog	Wed Jun 19 11:27:29 2002
+++ b/fs/ntfs/ChangeLog	Wed Jun 19 11:27:29 2002
@@ -23,6 +23,17 @@
 	  them cleaner and make code reuse easier.
 	- Want to use dummy inodes for address space i/o.
 
+2.0.9 - Decompression engine now uses a single buffer and other cleanups.
+
+	- Change decompression engine to use a single buffer protected by a
+	  spin lock instead of per-CPU buffers. (Rusty Russel)
+	- Switch to using the new KM_BIO_SRC_IRQ for atomic kmaps. (Andrew
+	  Morton)
+	- Change buffer size in ntfs_readdir()/ntfs_filldir() to use
+	  NLS_MAX_CHARSET_SIZE which makes the buffers almost 1kiB each but
+	  it also makes everything safer so it is a good thing.
+	- Miscellaneous minor cleanups to comments.
+
 2.0.8 - Major updates for handling of case sensitivity and dcache aliasing.
 
 	Big thanks go to Al Viro and other inhabitants of #kernel for investing
diff -Nru a/fs/ntfs/Makefile b/fs/ntfs/Makefile
--- a/fs/ntfs/Makefile	Wed Jun 19 11:27:29 2002
+++ b/fs/ntfs/Makefile	Wed Jun 19 11:27:29 2002
@@ -5,7 +5,7 @@
 ntfs-objs := aops.o attrib.o compress.o debug.o dir.o file.o inode.o mft.o \
 	     mst.o namei.o super.o sysctl.o time.o unistr.o upcase.o
 
-EXTRA_CFLAGS = -DNTFS_VERSION=\"2.0.8\"
+EXTRA_CFLAGS = -DNTFS_VERSION=\"2.0.9\"
 
 ifeq ($(CONFIG_NTFS_DEBUG),y)
 EXTRA_CFLAGS += -DDEBUG
diff -Nru a/fs/ntfs/compress.c b/fs/ntfs/compress.c
--- a/fs/ntfs/compress.c	Wed Jun 19 11:27:29 2002
+++ b/fs/ntfs/compress.c	Wed Jun 19 11:27:29 2002
@@ -50,11 +50,13 @@
 } ntfs_compression_constants;
 
 /**
- * ntfs_compression_buffer - one buffer for the decompression engine.
+ * ntfs_compression_buffer - one buffer for the decompression engine
  */
 static u8 *ntfs_compression_buffer = NULL;
 
-/* This spinlock which protects it */
+/**
+ * ntfs_cb_lock - spinlock which protects ntfs_compression_buffer
+ */
 static spinlock_t ntfs_cb_lock = SPIN_LOCK_UNLOCKED;
 
 /**
@@ -66,8 +68,6 @@
  */
 int allocate_compression_buffers(void)
 {
-	int i, j;
-
 	BUG_ON(ntfs_compression_buffer);
 
 	ntfs_compression_buffer = vmalloc(NTFS_MAX_CB_SIZE);
@@ -83,8 +83,6 @@
  */
 void free_compression_buffers(void)
 {
-	int i;
-
 	BUG_ON(!ntfs_compression_buffer);
 	vfree(ntfs_compression_buffer);
 	ntfs_compression_buffer = NULL;
@@ -592,7 +590,8 @@
 
 	/*
 	 * Get the compression buffer. We must not sleep any more
-	 * until we are finished with it.  */
+	 * until we are finished with it.
+	 */
 	spin_lock(&ntfs_cb_lock);
 	cb = ntfs_compression_buffer;
 
@@ -668,7 +667,10 @@
 			if (page)
 				memset(page_address(page) + cur_ofs, 0,
 						cb_max_ofs - cur_ofs);
-			cb_pos += cb_max_ofs - cur_ofs;
+			/*
+			 * No need to update cb_pos at this stage:
+			 *	cb_pos += cb_max_ofs - cur_ofs;
+			 */
 			cur_ofs = cb_max_ofs;
 		}
 	} else if (vcn == start_vcn) {
@@ -742,7 +744,8 @@
 				cb_pos,	cb_size - (cb_pos - cb));
 		/*
 		 * We can sleep from now on, lock already dropped by
-		 * ntfs_decompress.  */
+		 * ntfs_decompress().
+		 */
 		if (err) {
 			ntfs_error(vol->sb, "ntfs_decompress() failed in inode "
 					"0x%Lx with error code %i. Skipping "
diff -Nru a/fs/ntfs/dir.c b/fs/ntfs/dir.c
--- a/fs/ntfs/dir.c	Wed Jun 19 11:27:29 2002
+++ b/fs/ntfs/dir.c	Wed Jun 19 11:27:29 2002
@@ -995,10 +995,10 @@
  * @ie:		current index entry
  * @name:	buffer to use for the converted name
  * @dirent:	vfs filldir callback context
- * filldir:	vfs filldir callback
+ * @filldir:	vfs filldir callback
  *
- * Convert the Unicode name to the loaded NLS and pass it to
- * the filldir callback.
+ * Convert the Unicode @name to the loaded NLS and pass it to the @filldir
+ * callback.
  */
 static inline int ntfs_filldir(ntfs_volume *vol, struct file *filp,
 		ntfs_inode *ndir, const INDEX_TYPE index_type,
@@ -1033,7 +1033,7 @@
 	}
 	name_len = ntfs_ucstonls(vol, (uchar_t*)&ie->key.file_name.file_name,
 			ie->key.file_name.file_name_length, &name,
-			NTFS_MAX_NAME_LEN * 3 + 1);
+			NTFS_MAX_NAME_LEN * NLS_MAX_CHARSET_SIZE + 1);
 	if (name_len <= 0) {
 		ntfs_debug("Skipping unrepresentable file.");
 		return 0;
@@ -1126,7 +1126,8 @@
 	 * Allocate a buffer to store the current name being processed
 	 * converted to format determined by current NLS.
 	 */
-	name = (u8*)kmalloc(NTFS_MAX_NAME_LEN * 3 + 1, GFP_NOFS);
+	name = (u8*)kmalloc(NTFS_MAX_NAME_LEN * NLS_MAX_CHARSET_SIZE + 1,
+			GFP_NOFS);
 	if (!name) {
 		err = -ENOMEM;
 		goto put_unm_err_out;
diff -Nru a/fs/ntfs/layout.h b/fs/ntfs/layout.h
--- a/fs/ntfs/layout.h	Wed Jun 19 11:27:29 2002
+++ b/fs/ntfs/layout.h	Wed Jun 19 11:27:29 2002
@@ -948,8 +948,7 @@
 					   data attribute. NOTE: Is a multiple
 					   of the cluster size. */
 /* 30*/	s64 data_size;			/* Byte size of actual data in data
-					   attribute. NOTE: Only present when
-					   lowest_vcn is 0. */
+					   attribute. */
 /* 38*/	FILE_ATTR_FLAGS file_attributes;	/* Flags describing the file. */
 /* 3c*/	union {
 	/* 3c*/	struct {
diff -Nru a/fs/ntfs/namei.c b/fs/ntfs/namei.c
--- a/fs/ntfs/namei.c	Wed Jun 19 11:27:29 2002
+++ b/fs/ntfs/namei.c	Wed Jun 19 11:27:29 2002
@@ -235,8 +235,9 @@
 	}
 	nls_name.hash = full_name_hash(nls_name.name, nls_name.len);
 
-	// FIXME: Do we need dcache_lock or dparent_lock here or is the
-	// fact that i_sem is held on the parent inode sufficient? (AIA)
+	/*
+	 * Note: No need for dparent_lock as i_sem is held on the parent inode.
+	 */
 
 	/* Does a dentry matching the nls_name exist already? */
 	real_dent = d_lookup(dent->d_parent, &nls_name);
diff -Nru a/fs/ntfs/ChangeLog b/fs/ntfs/ChangeLog
--- a/fs/ntfs/ChangeLog	Wed Jun 19 11:27:30 2002
+++ b/fs/ntfs/ChangeLog	Wed Jun 19 11:27:30 2002
@@ -26,7 +26,7 @@
 2.0.9 - Decompression engine now uses a single buffer and other cleanups.
 
 	- Change decompression engine to use a single buffer protected by a
-	  spin lock instead of per-CPU buffers. (Rusty Russel)
+	  spin lock instead of per-CPU buffers. (Rusty Russell)
 	- Switch to using the new KM_BIO_SRC_IRQ for atomic kmaps. (Andrew
 	  Morton)
 	- Change buffer size in ntfs_readdir()/ntfs_filldir() to use

===================================================================

This BitKeeper patch contains the following changesets:
aia21@cantab.net|ChangeSet|20020619102354|24989
aia21@cantab.net|ChangeSet|20020619094853|24993
aia21@cantab.net|ChangeSet|20020619080624|25748
aia21@cantab.net|ChangeSet|20020618221226|05503
aia21@cantab.net|ChangeSet|20020612170720|56511
aia21@cantab.net|ChangeSet|20020610011304|45406
aia21@cantab.net|ChangeSet|20020609060851|25935
aia21@cantab.net|ChangeSet|20020606195445|09279
aia21@cantab.net|ChangeSet|20020605191906|36417
aia21@cantab.net|ChangeSet|20020603073201|20682
## Wrapped with gzip_uu ##


begin 664 bkpatch17656
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
3<G(<\,`5H9+=_P%FS`89,RX`````
`
end
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Copyright © 2002, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds