ext4: don't BUG when truncating encrypted inodes on the orphan list
[firefly-linux-kernel-4.4.55.git] / fs / ext4 / inode.c
index e0f8621467934339130e21e569c3e50d6933e11a..7dcc97eadb12f8c7d5861f75b522225f7876de10 100644 (file)
@@ -3573,6 +3573,10 @@ static int ext4_block_truncate_page(handle_t *handle,
        unsigned blocksize;
        struct inode *inode = mapping->host;
 
+       /* If we are processing an encrypted inode during orphan list handling */
+       if (ext4_encrypted_inode(inode) && !ext4_has_encryption_key(inode))
+               return 0;
+
        blocksize = inode->i_sb->s_blocksize;
        length = blocksize - (offset & (blocksize - 1));