@ -2440,6 +2440,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 ) ;
@ -3392,6 +3400,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 :
@ -3561,6 +3571,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 :