diff options
Diffstat (limited to 'fs/btrfs/dev-replace.c')
| -rw-r--r-- | fs/btrfs/dev-replace.c | 7 | 
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/btrfs/dev-replace.c b/fs/btrfs/dev-replace.c index 2aa48aecc52b..46092e67f61a 100644 --- a/fs/btrfs/dev-replace.c +++ b/fs/btrfs/dev-replace.c @@ -407,6 +407,13 @@ int btrfs_dev_replace_start(struct btrfs_fs_info *fs_info,  	if (IS_ERR(src_device))  		return PTR_ERR(src_device); +	if (btrfs_pinned_by_swapfile(fs_info, src_device)) { +		btrfs_warn_in_rcu(fs_info, +	  "cannot replace device %s (devid %llu) due to active swapfile", +			btrfs_dev_name(src_device), src_device->devid); +		return -ETXTBSY; +	} +  	ret = btrfs_init_dev_replace_tgtdev(fs_info, tgtdev_name,  					    src_device, &tgt_device);  	if (ret)  |