|
@@ -1202,6 +1202,12 @@ int btrfs_defrag_file(struct inode *inode, struct file *file,
|
|
if (!(inode->i_sb->s_flags & MS_ACTIVE))
|
|
if (!(inode->i_sb->s_flags & MS_ACTIVE))
|
|
break;
|
|
break;
|
|
|
|
|
|
|
|
+ if (btrfs_defrag_cancelled(root->fs_info)) {
|
|
|
|
+ printk(KERN_DEBUG "btrfs: defrag_file cancelled\n");
|
|
|
|
+ ret = -EAGAIN;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
if (!should_defrag_range(inode, (u64)i << PAGE_CACHE_SHIFT,
|
|
if (!should_defrag_range(inode, (u64)i << PAGE_CACHE_SHIFT,
|
|
extent_thresh, &last_len, &skip,
|
|
extent_thresh, &last_len, &skip,
|
|
&defrag_end, range->flags &
|
|
&defrag_end, range->flags &
|