aboutsummaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorKevin Hilman <khilman@linaro.org>2015-07-06 11:16:48 -0700
committerKevin Hilman <khilman@linaro.org>2015-07-06 11:16:48 -0700
commitc1c767d29bb2390308a35b69957b874e9446fe3b (patch)
tree6014e0b0838b2536c72452be4c5f5b2102922d04 /fs
parent2cb9802eeb7f919f97df05b16ec128f4f5af366d (diff)
parent165797d05c15ab87ef7421c63a076ffa8477cbe4 (diff)
Merge tag 'v3.14.45' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into linux-linaro-lsk-v3.14lsk-v3.14-15.07
This is the 3.14.45 stable release
Diffstat (limited to 'fs')
-rw-r--r--fs/btrfs/extent_io.c5
-rw-r--r--fs/btrfs/super.c9
2 files changed, 13 insertions, 1 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index fa9f90049099..8adfc65b37dd 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -4289,8 +4289,11 @@ int extent_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
}
ret = fiemap_fill_next_extent(fieinfo, em_start, disko,
em_len, flags);
- if (ret)
+ if (ret) {
+ if (ret == 1)
+ ret = 0;
goto out_free;
+ }
}
out_free:
free_extent_map(em);
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index d04db817be5c..92cbfbf2599e 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -906,6 +906,15 @@ find_root:
if (IS_ERR(new_root))
return ERR_CAST(new_root);
+ if (!(sb->s_flags & MS_RDONLY)) {
+ int ret;
+ down_read(&fs_info->cleanup_work_sem);
+ ret = btrfs_orphan_cleanup(new_root);
+ up_read(&fs_info->cleanup_work_sem);
+ if (ret)
+ return ERR_PTR(ret);
+ }
+
dir_id = btrfs_root_dirid(&new_root->root_item);
setup_root:
location.objectid = dir_id;