+ inode-diet-use-a-union-for-i_blocks-and-i_size-i_rdev-and-i_devices.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled

     inode-diet: Use a union for i_blocks and i_size, i_rdev and i_devices

has been added to the -mm tree.  Its filename is

     inode-diet-use-a-union-for-i_blocks-and-i_size-i_rdev-and-i_devices.patch

See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this

------------------------------------------------------
Subject: inode-diet: Use a union for i_blocks and i_size, i_rdev and i_devices
From: "Theodore Ts'o" <tytso@xxxxxxx>

The i_blocks and i_size fields are only used for regular files.  So we move
them into the union, along with i_rdev and i_devices, which are only used by
block or character devices.

Signed-off-by: "Theodore Ts'o" <tytso@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 fs/stat.c          |    2 +-
 include/linux/fs.h |   18 ++++++++++++------
 2 files changed, 13 insertions(+), 7 deletions(-)

diff -puN fs/stat.c~inode-diet-use-a-union-for-i_blocks-and-i_size-i_rdev-and-i_devices fs/stat.c
--- a/fs/stat.c~inode-diet-use-a-union-for-i_blocks-and-i_size-i_rdev-and-i_devices
+++ a/fs/stat.c
@@ -32,7 +32,7 @@ void generic_fillattr(struct inode *inod
 	stat->mtime = inode->i_mtime;
 	stat->ctime = inode->i_ctime;
 	stat->size = i_size_read(inode);
-	stat->blocks = inode->i_blocks;
+	stat->blocks = S_ISREG(inode->i_mode) ? inode->i_blocks : 0;
 	stat->blksize = PAGE_CACHE_SIZE;
 }
 
diff -puN include/linux/fs.h~inode-diet-use-a-union-for-i_blocks-and-i_size-i_rdev-and-i_devices include/linux/fs.h
--- a/include/linux/fs.h~inode-diet-use-a-union-for-i_blocks-and-i_size-i_rdev-and-i_devices
+++ a/include/linux/fs.h
@@ -501,15 +501,12 @@ struct inode {
 	unsigned int		i_nlink;
 	uid_t			i_uid;
 	gid_t			i_gid;
-	dev_t			i_rdev;
 	loff_t			i_size;
 	struct timespec		i_atime;
 	struct timespec		i_mtime;
 	struct timespec		i_ctime;
 	unsigned int		i_blkbits;
 	unsigned long		i_version;
-	blkcnt_t		i_blocks;
-	unsigned short          i_bytes;
 	spinlock_t		i_lock;	/* i_blocks, i_bytes, maybe i_size */
 	struct mutex		i_mutex;
 	struct rw_semaphore	i_alloc_sem;
@@ -522,11 +519,20 @@ struct inode {
 #ifdef CONFIG_QUOTA
 	struct dquot		*i_dquot[MAXQUOTAS];
 #endif
-	struct list_head	i_devices;
 	union {
 		struct pipe_inode_info	*i_pipe;
-		struct block_device	*i_bdev;
-		struct cdev		*i_cdev;
+		struct {
+			union {
+				struct block_device	*i_bdev;
+				struct cdev		*i_cdev;
+			};
+			dev_t			i_rdev;
+			struct list_head	i_devices;
+		};
+		struct {
+			unsigned short          i_bytes;
+			blkcnt_t		i_blocks;
+		};
 	};
 
 	__u32			i_generation;
_

Patches currently in -mm which might be from tytso@xxxxxxx are

origin.patch
uml-build-fix.patch
inode_diet-replace-inodeugeneric_ip-with-inodei_private.patch
inode-diet-move-i_pipe-into-a-union.patch
inode-diet-move-i_bdev-into-a-union.patch
inode-diet-move-i_cdev-into-a-union.patch
inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default.patch
inode-diet-move-i_cindex-from-struct-inode-to-struct-file.patch
inode-diet-use-a-union-for-i_blocks-and-i_size-i_rdev-and-i_devices.patch
inode-diet-fix-size-of-i_blkbits-i_version-and-i_dnotify_mask.patch
inode-diet-move-i_pipe-into-a-union-ecryptfs.patch
inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default-ecryptfs.patch
inode_diet-replace-inodeugeneric_ip-with-inodei_private-reiser4.patch
inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default-reiser4.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux