On Mon, Feb 24, 2020 at 09:30:43AM +0530, Chandan Rajendra wrote: > A future commit will cause xfs_attr_calc_size() to be invoked from a function > defined in another file. Hence this commit makes xfs_attr_calc_size() as > non-static. > > Signed-off-by: Chandan Rajendra <chandanrlinux@xxxxxxxxx> > --- > fs/xfs/libxfs/xfs_attr.c | 58 ++++++++++++++++++++-------------------- > fs/xfs/libxfs/xfs_attr.h | 2 ++ > 2 files changed, 31 insertions(+), 29 deletions(-) > > diff --git a/fs/xfs/libxfs/xfs_attr.c b/fs/xfs/libxfs/xfs_attr.c > index f781724bf85ce..1d62ce80d7949 100644 > --- a/fs/xfs/libxfs/xfs_attr.c > +++ b/fs/xfs/libxfs/xfs_attr.c > @@ -133,10 +133,38 @@ xfs_attr_get( > return error; > } > > +STATIC int > +xfs_attr_try_sf_addname( Why does this function move? --D > + struct xfs_inode *dp, > + struct xfs_da_args *args) > +{ > + > + struct xfs_mount *mp = dp->i_mount; > + int error, error2; > + > + error = xfs_attr_shortform_addname(args); > + if (error == -ENOSPC) > + return error; > + > + /* > + * Commit the shortform mods, and we're done. > + * NOTE: this is also the error path (EEXIST, etc). > + */ > + if (!error && !(args->op_flags & XFS_DA_OP_NOTIME)) > + xfs_trans_ichgtime(args->trans, dp, XFS_ICHGTIME_CHG); > + > + if (mp->m_flags & XFS_MOUNT_WSYNC) > + xfs_trans_set_sync(args->trans); > + > + error2 = xfs_trans_commit(args->trans); > + args->trans = NULL; > + return error ? error : error2; > +} > + > /* > * Calculate how many blocks we need for the new attribute, > */ > -STATIC void > +void > xfs_attr_calc_size( > struct xfs_mount *mp, > struct xfs_attr_set_resv *resv, > @@ -176,34 +204,6 @@ xfs_attr_calc_size( > resv->bmbt_blks; > } > > -STATIC int > -xfs_attr_try_sf_addname( > - struct xfs_inode *dp, > - struct xfs_da_args *args) > -{ > - > - struct xfs_mount *mp = dp->i_mount; > - int error, error2; > - > - error = xfs_attr_shortform_addname(args); > - if (error == -ENOSPC) > - return error; > - > - /* > - * Commit the shortform mods, and we're done. > - * NOTE: this is also the error path (EEXIST, etc). > - */ > - if (!error && !(args->op_flags & XFS_DA_OP_NOTIME)) > - xfs_trans_ichgtime(args->trans, dp, XFS_ICHGTIME_CHG); > - > - if (mp->m_flags & XFS_MOUNT_WSYNC) > - xfs_trans_set_sync(args->trans); > - > - error2 = xfs_trans_commit(args->trans); > - args->trans = NULL; > - return error ? error : error2; > -} > - > /* > * Set the attribute specified in @args. > */ > diff --git a/fs/xfs/libxfs/xfs_attr.h b/fs/xfs/libxfs/xfs_attr.h > index dc08bdfbc9615..0e387230744c3 100644 > --- a/fs/xfs/libxfs/xfs_attr.h > +++ b/fs/xfs/libxfs/xfs_attr.h > @@ -104,5 +104,7 @@ int xfs_attr_set(struct xfs_da_args *args); > int xfs_attr_set_args(struct xfs_da_args *args); > int xfs_attr_remove_args(struct xfs_da_args *args); > bool xfs_attr_namecheck(const void *name, size_t length); > +void xfs_attr_calc_size(struct xfs_mount *mp, struct xfs_attr_set_resv *resv, > + int namelen, int valuelen, int *local); > > #endif /* __XFS_ATTR_H__ */ > -- > 2.19.1 >