Separate the multi-fsb object dispatch from actual dir block processing
so that we can implement symlink handling correctly as a multi-fsb file.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
static int mfsb_length;
static int
-process_multi_fsb_objects(
+process_multi_fsb_dir(
xfs_fileoff_t o,
xfs_fsblock_t s,
xfs_filblks_t c,
char *dp;
int ret = 0;
- switch (btype) {
- case TYP_DIR2:
- break;
- default:
- print_warning("bad type for multi-fsb object %d", btype);
- return -EINVAL;
- }
-
while (c > 0) {
unsigned int bm_len;
return ret;
}
+static int
+process_multi_fsb_objects(
+ xfs_fileoff_t o,
+ xfs_fsblock_t s,
+ xfs_filblks_t c,
+ typnm_t btype,
+ xfs_fileoff_t last)
+{
+ switch (btype) {
+ case TYP_DIR2:
+ return process_multi_fsb_dir(o, s, c, btype, last);
+ default:
+ print_warning("bad type for multi-fsb object %d", btype);
+ return -EINVAL;
+ }
+}
+
/* inode copy routines */
static int
process_bmbt_reclist(