4.8-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Eric Whitney <enwli...@gmail.com>

commit 14fbd4aa613bd5110556c281799ce36dc6f3ba97 upstream.

Online defragging of encrypted files is not currently implemented.
However, the move extent ioctl can still return successfully when
called.  For example, this occurs when xfstest ext4/020 is run on an
encrypted file system, resulting in a corrupted test file and a
corresponding test failure.

Until the proper functionality is implemented, fail the move extent
ioctl if either the original or donor file is encrypted.

Signed-off-by: Eric Whitney <enwli...@gmail.com>
Signed-off-by: Theodore Ts'o <ty...@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

---
 fs/ext4/move_extent.c |    7 +++++++
 1 file changed, 7 insertions(+)

--- a/fs/ext4/move_extent.c
+++ b/fs/ext4/move_extent.c
@@ -598,6 +598,13 @@ ext4_move_extents(struct file *o_filp, s
                return -EOPNOTSUPP;
        }
 
+       if (ext4_encrypted_inode(orig_inode) ||
+           ext4_encrypted_inode(donor_inode)) {
+               ext4_msg(orig_inode->i_sb, KERN_ERR,
+                        "Online defrag not supported for encrypted files");
+               return -EOPNOTSUPP;
+       }
+
        /* Protect orig and donor inodes against a truncate */
        lock_two_nondirectories(orig_inode, donor_inode);
 


Reply via email to