f2fs: wire up FS_IOC_GET_ENCRYPTION_NONCE
This new ioctl retrieves a file's encryption nonce, which is useful for testing. See the corresponding fs/crypto/ patch for more details. Link: https://lore.kernel.org/r/20200314205052.93294-4-ebiggers@kernel.org Signed-off-by: Eric Biggers <ebiggers@google.com>
This commit is contained in:
@@ -2423,6 +2423,14 @@ static int f2fs_ioc_get_encryption_key_status(struct file *filp,
|
|||||||
return fscrypt_ioctl_get_key_status(filp, (void __user *)arg);
|
return fscrypt_ioctl_get_key_status(filp, (void __user *)arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int f2fs_ioc_get_encryption_nonce(struct file *filp, unsigned long arg)
|
||||||
|
{
|
||||||
|
if (!f2fs_sb_has_encrypt(F2FS_I_SB(file_inode(filp))))
|
||||||
|
return -EOPNOTSUPP;
|
||||||
|
|
||||||
|
return fscrypt_ioctl_get_nonce(filp, (void __user *)arg);
|
||||||
|
}
|
||||||
|
|
||||||
static int f2fs_ioc_gc(struct file *filp, unsigned long arg)
|
static int f2fs_ioc_gc(struct file *filp, unsigned long arg)
|
||||||
{
|
{
|
||||||
struct inode *inode = file_inode(filp);
|
struct inode *inode = file_inode(filp);
|
||||||
@@ -3437,6 +3445,8 @@ long f2fs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
|||||||
return f2fs_ioc_remove_encryption_key_all_users(filp, arg);
|
return f2fs_ioc_remove_encryption_key_all_users(filp, arg);
|
||||||
case FS_IOC_GET_ENCRYPTION_KEY_STATUS:
|
case FS_IOC_GET_ENCRYPTION_KEY_STATUS:
|
||||||
return f2fs_ioc_get_encryption_key_status(filp, arg);
|
return f2fs_ioc_get_encryption_key_status(filp, arg);
|
||||||
|
case FS_IOC_GET_ENCRYPTION_NONCE:
|
||||||
|
return f2fs_ioc_get_encryption_nonce(filp, arg);
|
||||||
case F2FS_IOC_GARBAGE_COLLECT:
|
case F2FS_IOC_GARBAGE_COLLECT:
|
||||||
return f2fs_ioc_gc(filp, arg);
|
return f2fs_ioc_gc(filp, arg);
|
||||||
case F2FS_IOC_GARBAGE_COLLECT_RANGE:
|
case F2FS_IOC_GARBAGE_COLLECT_RANGE:
|
||||||
@@ -3611,6 +3621,7 @@ long f2fs_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
|||||||
case FS_IOC_REMOVE_ENCRYPTION_KEY:
|
case FS_IOC_REMOVE_ENCRYPTION_KEY:
|
||||||
case FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS:
|
case FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS:
|
||||||
case FS_IOC_GET_ENCRYPTION_KEY_STATUS:
|
case FS_IOC_GET_ENCRYPTION_KEY_STATUS:
|
||||||
|
case FS_IOC_GET_ENCRYPTION_NONCE:
|
||||||
case F2FS_IOC_GARBAGE_COLLECT:
|
case F2FS_IOC_GARBAGE_COLLECT:
|
||||||
case F2FS_IOC_GARBAGE_COLLECT_RANGE:
|
case F2FS_IOC_GARBAGE_COLLECT_RANGE:
|
||||||
case F2FS_IOC_WRITE_CHECKPOINT:
|
case F2FS_IOC_WRITE_CHECKPOINT:
|
||||||
|
Reference in New Issue
Block a user