diff options
author | Dave Chinner <dchinner@redhat.com> | 2013-07-10 07:04:00 +1000 |
---|---|---|
committer | Ben Myers <bpm@sgi.com> | 2013-07-09 16:40:22 -0500 |
commit | f3508bcddf8fae6ebd21000d708cf09e7e77a963 (patch) | |
tree | f01d4bbda169c5929a7ec8908c81b02c530fba69 /fs/xfs/xfs_bmap.h | |
parent | 3e5b7d8b491c3710b7e007eab0a643f923932e3d (diff) | |
download | kernel-common-f3508bcddf8fae6ebd21000d708cf09e7e77a963.tar.gz kernel-common-f3508bcddf8fae6ebd21000d708cf09e7e77a963.tar.bz2 kernel-common-f3508bcddf8fae6ebd21000d708cf09e7e77a963.zip |
xfs: remove local fork format handling from xfs_bmapi_write()
The conversion from local format to extent format requires
interpretation of the data in the fork being converted, so it cannot
be done in a generic way. It is up to the caller to convert the fork
format to extent format before calling into xfs_bmapi_write() so
format conversion can be done correctly.
The code in xfs_bmapi_write() to convert the format is used
implicitly by the attribute and directory code, but they
specifically zero the fork size so that the conversion does not do
any allocation or manipulation. Move this conversion into the
shortform to leaf functions for the dir/attr code so the conversions
are explicitly controlled by all callers.
Now we can remove the conversion code in xfs_bmapi_write.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Mark Tinguely <tinguely@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_bmap.h')
-rw-r--r-- | fs/xfs/xfs_bmap.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/xfs/xfs_bmap.h b/fs/xfs/xfs_bmap.h index 5f469c3516eb..1cf1292d29b7 100644 --- a/fs/xfs/xfs_bmap.h +++ b/fs/xfs/xfs_bmap.h @@ -172,6 +172,7 @@ void xfs_bmap_trace_exlist(struct xfs_inode *ip, xfs_extnum_t cnt, #endif int xfs_bmap_add_attrfork(struct xfs_inode *ip, int size, int rsvd); +void xfs_bmap_local_to_extents_empty(struct xfs_inode *ip, int whichfork); void xfs_bmap_add_free(xfs_fsblock_t bno, xfs_filblks_t len, struct xfs_bmap_free *flist, struct xfs_mount *mp); void xfs_bmap_cancel(struct xfs_bmap_free *flist); |