diff options
Diffstat (limited to 'fs/btrfs/file-item.c')
-rw-r--r-- | fs/btrfs/file-item.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/btrfs/file-item.c b/fs/btrfs/file-item.c index a6a9d4e8b491..39ca7c1250e7 100644 --- a/fs/btrfs/file-item.c +++ b/fs/btrfs/file-item.c | |||
@@ -266,7 +266,7 @@ int btrfs_lookup_bio_sums_dio(struct btrfs_root *root, struct inode *inode, | |||
266 | } | 266 | } |
267 | 267 | ||
268 | int btrfs_lookup_csums_range(struct btrfs_root *root, u64 start, u64 end, | 268 | int btrfs_lookup_csums_range(struct btrfs_root *root, u64 start, u64 end, |
269 | struct list_head *list) | 269 | struct list_head *list, int search_commit) |
270 | { | 270 | { |
271 | struct btrfs_key key; | 271 | struct btrfs_key key; |
272 | struct btrfs_path *path; | 272 | struct btrfs_path *path; |
@@ -283,6 +283,12 @@ int btrfs_lookup_csums_range(struct btrfs_root *root, u64 start, u64 end, | |||
283 | path = btrfs_alloc_path(); | 283 | path = btrfs_alloc_path(); |
284 | BUG_ON(!path); | 284 | BUG_ON(!path); |
285 | 285 | ||
286 | if (search_commit) { | ||
287 | path->skip_locking = 1; | ||
288 | path->reada = 2; | ||
289 | path->search_commit_root = 1; | ||
290 | } | ||
291 | |||
286 | key.objectid = BTRFS_EXTENT_CSUM_OBJECTID; | 292 | key.objectid = BTRFS_EXTENT_CSUM_OBJECTID; |
287 | key.offset = start; | 293 | key.offset = start; |
288 | key.type = BTRFS_EXTENT_CSUM_KEY; | 294 | key.type = BTRFS_EXTENT_CSUM_KEY; |