On Tue, May 25, 2021 at 12:55:01PM -0700, Allison Henderson wrote: > This function is no longer used, so it is safe to remove > > Signed-off-by: Allison Henderson <allison.henderson@xxxxxxxxxx> Looks good to me, Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> --D > --- > fs/xfs/libxfs/xfs_attr_remote.c | 66 ----------------------------------------- > fs/xfs/libxfs/xfs_attr_remote.h | 1 - > 2 files changed, 67 deletions(-) > > diff --git a/fs/xfs/libxfs/xfs_attr_remote.c b/fs/xfs/libxfs/xfs_attr_remote.c > index ba3b1c8..b5bc50c 100644 > --- a/fs/xfs/libxfs/xfs_attr_remote.c > +++ b/fs/xfs/libxfs/xfs_attr_remote.c > @@ -562,72 +562,6 @@ xfs_attr_rmtval_stale( > } > > /* > - * Write the value associated with an attribute into the out-of-line buffer > - * that we have defined for it. > - */ > -int > -xfs_attr_rmtval_set( > - struct xfs_da_args *args) > -{ > - struct xfs_inode *dp = args->dp; > - struct xfs_bmbt_irec map; > - xfs_dablk_t lblkno; > - int blkcnt; > - int nmap; > - int error; > - > - trace_xfs_attr_rmtval_set(args); > - > - error = xfs_attr_rmt_find_hole(args); > - if (error) > - return error; > - > - blkcnt = args->rmtblkcnt; > - lblkno = (xfs_dablk_t)args->rmtblkno; > - /* > - * Roll through the "value", allocating blocks on disk as required. > - */ > - while (blkcnt > 0) { > - /* > - * Allocate a single extent, up to the size of the value. > - * > - * Note that we have to consider this a data allocation as we > - * write the remote attribute without logging the contents. > - * Hence we must ensure that we aren't using blocks that are on > - * the busy list so that we don't overwrite blocks which have > - * recently been freed but their transactions are not yet > - * committed to disk. If we overwrite the contents of a busy > - * extent and then crash then the block may not contain the > - * correct metadata after log recovery occurs. > - */ > - nmap = 1; > - error = xfs_bmapi_write(args->trans, dp, (xfs_fileoff_t)lblkno, > - blkcnt, XFS_BMAPI_ATTRFORK, args->total, &map, > - &nmap); > - if (error) > - return error; > - error = xfs_defer_finish(&args->trans); > - if (error) > - return error; > - > - ASSERT(nmap == 1); > - ASSERT((map.br_startblock != DELAYSTARTBLOCK) && > - (map.br_startblock != HOLESTARTBLOCK)); > - lblkno += map.br_blockcount; > - blkcnt -= map.br_blockcount; > - > - /* > - * Start the next trans in the chain. > - */ > - error = xfs_trans_roll_inode(&args->trans, dp); > - if (error) > - return error; > - } > - > - return xfs_attr_rmtval_set_value(args); > -} > - > -/* > * Find a hole for the attr and store it in the delayed attr context. This > * initializes the context to roll through allocating an attr extent for a > * delayed attr operation > diff --git a/fs/xfs/libxfs/xfs_attr_remote.h b/fs/xfs/libxfs/xfs_attr_remote.h > index 8ad68d5..61b85b9 100644 > --- a/fs/xfs/libxfs/xfs_attr_remote.h > +++ b/fs/xfs/libxfs/xfs_attr_remote.h > @@ -9,7 +9,6 @@ > int xfs_attr3_rmt_blocks(struct xfs_mount *mp, int attrlen); > > int xfs_attr_rmtval_get(struct xfs_da_args *args); > -int xfs_attr_rmtval_set(struct xfs_da_args *args); > int xfs_attr_rmtval_stale(struct xfs_inode *ip, struct xfs_bmbt_irec *map, > xfs_buf_flags_t incore_flags); > int xfs_attr_rmtval_invalidate(struct xfs_da_args *args); > -- > 2.7.4 >