diff options
| author | Jan Engelmohr <jan.engelmohr@mailbox.tu-dresden.de> | 2016-08-01 13:41:37 +0200 |
|---|---|---|
| committer | Moyster <oysterized@gmail.com> | 2016-08-26 16:16:56 +0200 |
| commit | 75cc0b48839a29a553bf6e6d131c08ffbc46ca3e (patch) | |
| tree | 6c30954147b9d697a7cbfa435f04d6c75645297c /fs | |
| parent | 83da961803a184316d128189acee4764b3739b7b (diff) | |
3.10.80 -> 3.10.81
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/btrfs/extent_io.c | 5 | ||||
| -rw-r--r-- | fs/btrfs/super.c | 9 |
2 files changed, 13 insertions, 1 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 84ceff6ab..be7e31a93 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -4080,8 +4080,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 f0857e092..68891ff7e 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c @@ -779,6 +779,15 @@ find_root: if (btrfs_root_refs(&new_root->root_item) == 0) return ERR_PTR(-ENOENT); + 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; |
