Re: [RFC] fs: disable create file with O_DIRECT for tmpfs

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

 



On Thu, Jul 20, 2017 at 01:41:26AM +0800, weiping zhang wrote:
> tmpfs not support O_DIRECT, when user open with O_DIRECT , the errno
> -EINVAL return to userspace by open_check_o_direct, but the file has
> been created, it's a strange thing. Add a checking for tmpfs that can
> avoid creating that file.
> 
> Signed-off-by: weiping zhang <zhangweiping@xxxxxxxxxxxxxxx>
> ---
>  fs/namei.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/fs/namei.c b/fs/namei.c
> index ddb6a7c..a2a8cb9 100644
> --- a/fs/namei.c
> +++ b/fs/namei.c
> @@ -3106,6 +3106,10 @@ static int lookup_open(struct nameidata *nd, struct path *path,
>  	if (unlikely(IS_DEADDIR(dir_inode)))
>  		return -ENOENT;
>  
> +	if (unlikely(open_flag & (O_CREAT | O_DIRECT) &&
> +		strcmp(dir->d_sb->s_type->name, "tmpfs") == 0))
> +		return -EINVAL;

Hell, _no_.  Kludges of that sort are flat-out wrong - string comparisons on the
fs type name, no less...  For one thing, tmpfs is not the only such filesystem.
Should we turn that into a long list of "forbidden" types, patching it every time
somebody comes up with a filesystem that fails O_DIRECT open?  Not to mention the
modules, or filesystems where that depends upon e.g. mount flags...



[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