Selaa lähdekoodia

xfs: reject swapext ioctl on swapfiles

Swapfiles are magic - I/O is directly initialized by the VM without
involving the filesystem.  Swapping out extents underneath the VM thus
can cause severe problems.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Felix Blyakher <felixb@sgi.com>
Christoph Hellwig 16 vuotta sitten
vanhempi
commit
7c8f7af67d
1 muutettua tiedostoa jossa 6 lisäystä ja 0 poistoa
  1. 6 0
      fs/xfs/xfs_dfrag.c

+ 6 - 0
fs/xfs/xfs_dfrag.c

@@ -79,6 +79,12 @@ xfs_swapext(
 		goto out_put_target_file;
 	}
 
+	if (IS_SWAPFILE(file->f_path.dentry->d_inode) ||
+	    IS_SWAPFILE(target_file->f_path.dentry->d_inode)) {
+		error = XFS_ERROR(EINVAL);
+		goto out_put_target_file;
+	}
+
 	ip = XFS_I(file->f_path.dentry->d_inode);
 	tip = XFS_I(target_file->f_path.dentry->d_inode);