This patch replaces the attribute name, length and flags parameters with a single struct xfs_name parameter. This helps to clean up the numbers of parameters being passed around and pre-simplifies the code some. Signed-off-by: Allison Collins <allison.henderson@xxxxxxxxxx> --- db/attrset.c | 14 ++++++++++---- libxfs/libxfs_priv.h | 14 +++++--------- libxfs/xfs_attr.c | 40 ++++++++++++++++------------------------ libxfs/xfs_attr.h | 12 +++++------- 4 files changed, 36 insertions(+), 44 deletions(-) diff --git a/db/attrset.c b/db/attrset.c index dcedbb9..62d5448 100644 --- a/db/attrset.c +++ b/db/attrset.c @@ -69,6 +69,7 @@ attr_set_f( xfs_inode_t *ip = NULL; char *name, *value, *sp; int c, valuelen = 0, flags = 0; + struct xfs_name namep; if (cur_typ == NULL) { dbprintf(_("no current type\n")); @@ -146,8 +147,10 @@ attr_set_f( goto out; } - if (libxfs_attr_set(ip, (unsigned char *)name, strlen(name), - (unsigned char *)value, valuelen, flags)) { + namep.name = (unsigned char *)name; + namep.len = strlen(name); + namep.type = flags; + if (libxfs_attr_set(ip, &namep, (unsigned char *)value, valuelen)) { dbprintf(_("failed to set attr %s on inode %llu\n"), name, (unsigned long long)iocur_top->ino); goto out; @@ -173,6 +176,7 @@ attr_remove_f( xfs_inode_t *ip = NULL; char *name; int c, flags = 0; + struct xfs_name namep; if (cur_typ == NULL) { dbprintf(_("no current type\n")); @@ -222,8 +226,10 @@ attr_remove_f( goto out; } - if (libxfs_attr_remove(ip, (unsigned char *)name, - strlen(name), flags)) { + namep.name = (unsigned char *)name; + namep.len = strlen(name); + namep.type = flags; + if (libxfs_attr_remove(ip, &namep)) { dbprintf(_("failed to remove attr %s from inode %llu\n"), name, (unsigned long long)iocur_top->ino); goto out; diff --git a/libxfs/libxfs_priv.h b/libxfs/libxfs_priv.h index f20014f..7f604f0 100644 --- a/libxfs/libxfs_priv.h +++ b/libxfs/libxfs_priv.h @@ -613,15 +613,11 @@ static inline int test_and_set_bit(int nr, volatile unsigned long *addr) /* Keep static checkers quiet about nonstatic functions by exporting */ int xfs_inode_hasattr(struct xfs_inode *ip); int xfs_attr_get_ilocked(struct xfs_inode *ip, struct xfs_da_args *args); -int xfs_attr_get(struct xfs_inode *ip, const unsigned char *name, - size_t namelen, unsigned char *value, int *valuelenp, - int flags); -int xfs_attr_set(struct xfs_inode *dp, const unsigned char *name, - size_t namelen, unsigned char *value, int valuelen, - int flags); -int xfs_attr_remove(struct xfs_inode *dp, const unsigned char *name, - size_t namelen, int flags); - +int xfs_attr_get(struct xfs_inode *ip, struct xfs_name *name, + unsigned char *value, int *valuelenp); +int xfs_attr_set(struct xfs_inode *dp, struct xfs_name *name, + unsigned char *value, int valuelen); +int xfs_attr_remove(struct xfs_inode *dp, struct xfs_name *name); int xfs_rtbuf_get(struct xfs_mount *mp, struct xfs_trans *tp, xfs_rtblock_t block, int issum, struct xfs_buf **bpp); int xfs_rtcheck_range(struct xfs_mount *mp, struct xfs_trans *tp, diff --git a/libxfs/xfs_attr.c b/libxfs/xfs_attr.c index 158afe3..f956c44 100644 --- a/libxfs/xfs_attr.c +++ b/libxfs/xfs_attr.c @@ -60,9 +60,7 @@ STATIC int xfs_attr_args_init( struct xfs_da_args *args, struct xfs_inode *dp, - const unsigned char *name, - size_t namelen, - int flags) + struct xfs_name *name) { if (!name) @@ -72,9 +70,9 @@ xfs_attr_args_init( args->geo = dp->i_mount->m_attr_geo; args->whichfork = XFS_ATTR_FORK; args->dp = dp; - args->flags = flags; - args->name = name; - args->namelen = namelen; + args->flags = name->type; + args->name = name->name; + args->namelen = name->len; if (args->namelen >= MAXNAMELEN) return -EFAULT; /* match IRIX behaviour */ @@ -119,11 +117,9 @@ xfs_attr_get_ilocked( int xfs_attr_get( struct xfs_inode *ip, - const unsigned char *name, - size_t namelen, + struct xfs_name *name, unsigned char *value, - int *valuelenp, - int flags) + int *valuelenp) { struct xfs_da_args args; uint lock_mode; @@ -134,7 +130,7 @@ xfs_attr_get( if (XFS_FORCED_SHUTDOWN(ip->i_mount)) return -EIO; - error = xfs_attr_args_init(&args, ip, name, namelen, flags); + error = xfs_attr_args_init(&args, ip, name); if (error) return error; @@ -305,16 +301,14 @@ xfs_attr_remove_args( int xfs_attr_set( struct xfs_inode *dp, - const unsigned char *name, - size_t namelen, + struct xfs_name *name, unsigned char *value, - int valuelen, - int flags) + int valuelen) { struct xfs_mount *mp = dp->i_mount; struct xfs_da_args args; struct xfs_trans_res tres; - int rsvd = (flags & ATTR_ROOT) != 0; + int rsvd = (name->type & ATTR_ROOT) != 0; int error, local; XFS_STATS_INC(mp, xs_attr_set); @@ -322,7 +316,7 @@ xfs_attr_set( if (XFS_FORCED_SHUTDOWN(dp->i_mount)) return -EIO; - error = xfs_attr_args_init(&args, dp, name, namelen, flags); + error = xfs_attr_args_init(&args, dp, name); if (error) return error; @@ -385,7 +379,7 @@ xfs_attr_set( if (mp->m_flags & XFS_MOUNT_WSYNC) xfs_trans_set_sync(args.trans); - if ((flags & ATTR_KERNOTIME) == 0) + if ((name->type & ATTR_KERNOTIME) == 0) xfs_trans_ichgtime(args.trans, dp, XFS_ICHGTIME_CHG); /* @@ -410,9 +404,7 @@ out_trans_cancel: int xfs_attr_remove( struct xfs_inode *dp, - const unsigned char *name, - size_t namelen, - int flags) + struct xfs_name *name) { struct xfs_mount *mp = dp->i_mount; struct xfs_da_args args; @@ -423,7 +415,7 @@ xfs_attr_remove( if (XFS_FORCED_SHUTDOWN(dp->i_mount)) return -EIO; - error = xfs_attr_args_init(&args, dp, name, namelen, flags); + error = xfs_attr_args_init(&args, dp, name); if (error) return error; @@ -444,7 +436,7 @@ xfs_attr_remove( */ error = xfs_trans_alloc(mp, &M_RES(mp)->tr_attrrm, XFS_ATTRRM_SPACE_RES(mp), 0, - (flags & ATTR_ROOT) ? XFS_TRANS_RESERVE : 0, + (name->type & ATTR_ROOT) ? XFS_TRANS_RESERVE : 0, &args.trans); if (error) return error; @@ -467,7 +459,7 @@ xfs_attr_remove( if (mp->m_flags & XFS_MOUNT_WSYNC) xfs_trans_set_sync(args.trans); - if ((flags & ATTR_KERNOTIME) == 0) + if ((name->type & ATTR_KERNOTIME) == 0) xfs_trans_ichgtime(args.trans, dp, XFS_ICHGTIME_CHG); /* diff --git a/libxfs/xfs_attr.h b/libxfs/xfs_attr.h index 69493b5..aa7261a 100644 --- a/libxfs/xfs_attr.h +++ b/libxfs/xfs_attr.h @@ -142,14 +142,12 @@ int xfs_attr_list_int_ilocked(struct xfs_attr_list_context *); int xfs_attr_list_int(struct xfs_attr_list_context *); int xfs_inode_hasattr(struct xfs_inode *ip); int xfs_attr_get_ilocked(struct xfs_inode *ip, struct xfs_da_args *args); -int xfs_attr_get(struct xfs_inode *ip, const unsigned char *name, - size_t namelen, unsigned char *value, int *valuelenp, - int flags); -int xfs_attr_set(struct xfs_inode *dp, const unsigned char *name, - size_t namelen, unsigned char *value, int valuelen, int flags); +int xfs_attr_get(struct xfs_inode *ip, struct xfs_name *name, + unsigned char *value, int *valuelenp); +int xfs_attr_set(struct xfs_inode *dp, struct xfs_name *name, + unsigned char *value, int valuelen); int xfs_attr_set_args(struct xfs_da_args *args); -int xfs_attr_remove(struct xfs_inode *dp, const unsigned char *name, - size_t namelen, int flags); +int xfs_attr_remove(struct xfs_inode *dp, struct xfs_name *name); int xfs_attr_remove_args(struct xfs_da_args *args); int xfs_attr_list(struct xfs_inode *dp, char *buffer, int bufsize, int flags, struct attrlist_cursor_kern *cursor); -- 2.7.4