f2fs crypto: fix missing key when reading a page
authorJaegeuk Kim <jaegeuk@kernel.org>
Wed, 6 May 2015 03:20:29 +0000 (20:20 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 28 May 2015 22:41:56 +0000 (15:41 -0700)
1. mount $mnt
2. cp data $mnt/
3. umount $mnt
4. log out
5. log in
6. cat $mnt/data

-> panic, due to no i_crypt_info.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/crypto.c

index c910fa722e5c11f45e5a023333e5debbbafeff83..c3f02b61aa5afb6d46103fed5cbf7133316ca39c 100644 (file)
@@ -131,7 +131,9 @@ struct f2fs_crypto_ctx *f2fs_get_crypto_ctx(struct inode *inode)
        unsigned long flags;
        struct f2fs_crypt_info *ci = F2FS_I(inode)->i_crypt_info;
 
-       BUG_ON(ci == NULL);
+       if (ci == NULL)
+               return ERR_PTR(-EACCES);
+
        /*
         * We first try getting the ctx from a free list because in
         * the common case the ctx will have an allocated and