lkml.org 
[lkml]   [2005]   [Jan]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[RESEND][PATCH 6/9] Ext3: extended attribute sharing fixes and in-inode EAs
    Ext[23]: no spare xattr handler slots needed

    The ext3_xattr_set_handle2 and ext3_xattr_delete_inode functions contain
    duplicate code to decrease the reference count of an xattr block. Move
    this to a separate function.

    Also we know we have exclusive access to the inode in
    ext3_xattr_delete_inode; there is no need to grab the xattr_sem lock.

    Signed-off-by: Andreas Gruenbacher <agruen@suse.de>

    Index: linux-2.6.10/fs/ext3/xattr.c
    ===================================================================
    --- linux-2.6.10.orig/fs/ext3/xattr.c
    +++ linux-2.6.10/fs/ext3/xattr.c
    @@ -102,7 +102,7 @@ static void ext3_xattr_rehash(struct ext

    static struct mb_cache *ext3_xattr_cache;

    -static struct xattr_handler *ext3_xattr_handler_map[EXT3_XATTR_INDEX_MAX] = {
    +static struct xattr_handler *ext3_xattr_handler_map[] = {
    [EXT3_XATTR_INDEX_USER] = &ext3_xattr_user_handler,
    #ifdef CONFIG_EXT3_FS_POSIX_ACL
    [EXT3_XATTR_INDEX_POSIX_ACL_ACCESS] = &ext3_xattr_acl_access_handler,
    @@ -132,7 +132,7 @@ ext3_xattr_handler(int name_index)
    {
    struct xattr_handler *handler = NULL;

    - if (name_index > 0 && name_index <= EXT3_XATTR_INDEX_MAX)
    + if (name_index > 0 && name_index < ARRAY_SIZE(ext3_xattr_handler_map))
    handler = ext3_xattr_handler_map[name_index];
    return handler;
    }
    Index: linux-2.6.10/fs/ext2/xattr.c
    ===================================================================
    --- linux-2.6.10.orig/fs/ext2/xattr.c
    +++ linux-2.6.10/fs/ext2/xattr.c
    @@ -100,7 +100,7 @@ static void ext2_xattr_rehash(struct ext

    static struct mb_cache *ext2_xattr_cache;

    -static struct xattr_handler *ext2_xattr_handler_map[EXT2_XATTR_INDEX_MAX] = {
    +static struct xattr_handler *ext2_xattr_handler_map[] = {
    [EXT2_XATTR_INDEX_USER] = &ext2_xattr_user_handler,
    #ifdef CONFIG_EXT2_FS_POSIX_ACL
    [EXT2_XATTR_INDEX_POSIX_ACL_ACCESS] = &ext2_xattr_acl_access_handler,
    @@ -130,7 +130,7 @@ ext2_xattr_handler(int name_index)
    {
    struct xattr_handler *handler = NULL;

    - if (name_index > 0 && name_index <= EXT2_XATTR_INDEX_MAX)
    + if (name_index > 0 && name_index < ARRAY_SIZE(ext2_xattr_handler_map))
    handler = ext2_xattr_handler_map[name_index];
    return handler;
    }
    Index: linux-2.6.10/fs/ext3/xattr.h
    ===================================================================
    --- linux-2.6.10.orig/fs/ext3/xattr.h
    +++ linux-2.6.10/fs/ext3/xattr.h
    @@ -16,7 +16,6 @@
    #define EXT3_XATTR_REFCOUNT_MAX 1024

    /* Name indexes */
    -#define EXT3_XATTR_INDEX_MAX 10
    #define EXT3_XATTR_INDEX_USER 1
    #define EXT3_XATTR_INDEX_POSIX_ACL_ACCESS 2
    #define EXT3_XATTR_INDEX_POSIX_ACL_DEFAULT 3
    Index: linux-2.6.10/fs/ext2/xattr.h
    ===================================================================
    --- linux-2.6.10.orig/fs/ext2/xattr.h
    +++ linux-2.6.10/fs/ext2/xattr.h
    @@ -17,7 +17,6 @@
    #define EXT2_XATTR_REFCOUNT_MAX 1024

    /* Name indexes */
    -#define EXT2_XATTR_INDEX_MAX 10
    #define EXT2_XATTR_INDEX_USER 1
    #define EXT2_XATTR_INDEX_POSIX_ACL_ACCESS 2
    #define EXT2_XATTR_INDEX_POSIX_ACL_DEFAULT 3
    --
    Andreas Gruenbacher <agruen@suse.de>
    SUSE Labs, SUSE LINUX PRODUCTS GMBH
    -
    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/

    \
     
     \ /
      Last update: 2005-03-22 14:09    [W:0.042 / U:91.076 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site