Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fe08a9d4982d9618ec25760ea715c46fe051e508
Commit:     fe08a9d4982d9618ec25760ea715c46fe051e508
Parent:     6f2fad748ccced5b9313efce2a2c7ae4c04ef564
Author:     Alexey Dobriyan <[EMAIL PROTECTED]>
AuthorDate: Tue May 8 00:24:55 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Tue May 8 11:15:00 2007 -0700

    reiserfs: shrink superblock if no xattrs
    
    This makes in-core superblock fit into one cacheline here.
    
    Before:
        struct dentry *            xattr_root;           /*   124     4 */
        /* --- cacheline 1 boundary (128 bytes) --- */
        struct rw_semaphore        xattr_dir_sem;        /*   128    12 */
        int                        j_errno;              /*   140     4 */
        }; /* size: 144, cachelines: 2 */
           /* sum members: 142, holes: 1, sum holes: 2 */
           /* last cacheline: 16 bytes */
    
    After:
        int                        j_errno;              /*   124     4 */
        /* --- cacheline 1 boundary (128 bytes) --- */
        }; /* size: 128, cachelines: 1 */
           /* sum members: 126, holes: 1, sum holes: 2 */
    
    Signed-off-by: Alexey Dobriyan <[EMAIL PROTECTED]>
    Cc: <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 fs/reiserfs/super.c            |    6 ++++--
 include/linux/reiserfs_fs_sb.h |    3 ++-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
index 7054aae..5c58b41 100644
--- a/fs/reiserfs/super.c
+++ b/fs/reiserfs/super.c
@@ -433,12 +433,13 @@ int remove_save_link(struct inode *inode, int truncate)
 static void reiserfs_kill_sb(struct super_block *s)
 {
        if (REISERFS_SB(s)) {
+#ifdef CONFIG_REISERFS_FS_XATTR
                if (REISERFS_SB(s)->xattr_root) {
                        d_invalidate(REISERFS_SB(s)->xattr_root);
                        dput(REISERFS_SB(s)->xattr_root);
                        REISERFS_SB(s)->xattr_root = NULL;
                }
-
+#endif
                if (REISERFS_SB(s)->priv_root) {
                        d_invalidate(REISERFS_SB(s)->priv_root);
                        dput(REISERFS_SB(s)->priv_root);
@@ -1562,9 +1563,10 @@ static int reiserfs_fill_super(struct super_block *s, 
void *data, int silent)
        REISERFS_SB(s)->s_alloc_options.preallocmin = 0;
        /* Preallocate by 16 blocks (17-1) at once */
        REISERFS_SB(s)->s_alloc_options.preallocsize = 17;
+#ifdef CONFIG_REISERFS_FS_XATTR
        /* Initialize the rwsem for xattr dir */
        init_rwsem(&REISERFS_SB(s)->xattr_dir_sem);
-
+#endif
        /* setup default block allocator options */
        reiserfs_init_alloc_options(s);
 
diff --git a/include/linux/reiserfs_fs_sb.h b/include/linux/reiserfs_fs_sb.h
index 3a28742..1e5488e 100644
--- a/include/linux/reiserfs_fs_sb.h
+++ b/include/linux/reiserfs_fs_sb.h
@@ -401,9 +401,10 @@ struct reiserfs_sb_info {
        int reserved_blocks;    /* amount of blocks reserved for further 
allocations */
        spinlock_t bitmap_lock; /* this lock on now only used to protect 
reserved_blocks variable */
        struct dentry *priv_root;       /* root of /.reiserfs_priv */
+#ifdef CONFIG_REISERFS_FS_XATTR
        struct dentry *xattr_root;      /* root of /.reiserfs_priv/.xa */
        struct rw_semaphore xattr_dir_sem;
-
+#endif
        int j_errno;
 #ifdef CONFIG_QUOTA
        char *s_qf_names[MAXQUOTAS];
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to