Re: [RFC 3/5]add metadata_readahead ioctl in vfs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 13 Dec 2010 15:22:14 +0800
Shaohua Li <shaohua.li@xxxxxxxxx> wrote:

> Add metadata readahead ioctl in vfs. Filesystem can hook to
> super_operations.metadata_readahead to handle filesystem specific task.
> Next patch will give an example how btrfs implements it.
> 
> Signed-off-by: Shaohua Li <shaohua.li@xxxxxxxxx>
> 
> ---
>  fs/compat_ioctl.c  |    1 +
>  fs/ioctl.c         |   21 +++++++++++++++++++++
>  include/linux/fs.h |    8 ++++++++
>  3 files changed, 30 insertions(+)
> 
> Index: linux/fs/ioctl.c
> ===================================================================
> --- linux.orig/fs/ioctl.c	2010-12-13 14:01:56.000000000 +0800
> +++ linux/fs/ioctl.c	2010-12-13 14:10:42.000000000 +0800
> @@ -605,6 +605,24 @@ static int ioctl_metadata_incore(struct
>  	return entries;
>  }
>  
> +static int ioctl_metadata_readahead(struct file *filp, void __user *argp)
> +{
> +	struct super_block *sb = filp->f_path.dentry->d_inode->i_sb;
> +	struct metadata_readahead_args args;
> +
> +	if (!sb->s_op->metadata_readahead)
> +		return -EOPNOTSUPP;

-ENOTNETWORKING

> +	if (copy_from_user(&args, (struct metadata_readahead_args __user *)argp,

Unneeded cast.

> +			sizeof(args)))
> +		return -EFAULT;
> +
> +	if ((args.offset & ~PAGE_CACHE_MASK) || (args.size & ~PAGE_CACHE_MASK))

Why?

> +		return -EINVAL;
> +
> +	return sb->s_op->metadata_readahead(sb, args.offset, args.size);
> +}
> +

--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux