xfs
[Top] [All Lists]

Re: [RFC PATCH 1/5] new helper: iov_iter_rw()

To: Omar Sandoval <osandov@xxxxxxxxxxx>
Subject: Re: [RFC PATCH 1/5] new helper: iov_iter_rw()
From: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Date: Mon, 16 Mar 2015 17:36:05 +0000
Cc: linux-fsdevel@xxxxxxxxxxxxxxx, linux-btrfs@xxxxxxxxxxxxxxx, ceph-devel@xxxxxxxxxxxxxxx, linux-cifs@xxxxxxxxxxxxxxx, osd-dev@xxxxxxxxxxxx, linux-ext4@xxxxxxxxxxxxxxx, linux-f2fs-devel@xxxxxxxxxxxxxxxxxxxxx, fuse-devel@xxxxxxxxxxxxxxxxxxxxx, cluster-devel@xxxxxxxxxx, jfs-discussion@xxxxxxxxxxxxxxxxxxxxx, HPDD-discuss@xxxxxxxxxxx, linux-nfs@xxxxxxxxxxxxxxx, linux-nilfs@xxxxxxxxxxxxxxx, ocfs2-devel@xxxxxxxxxxxxxx, reiserfs-devel@xxxxxxxxxxxxxxx, v9fs-developer@xxxxxxxxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, Chris Mason <clm@xxxxxx>, Josef Bacik <jbacik@xxxxxx>, David Sterba <dsterba@xxxxxxx>, Yan Zheng <zyan@xxxxxxxxxx>, Sage Weil <sage@xxxxxxxxxx>, Steve French <sfrench@xxxxxxxxx>, Boaz Harrosh <ooo@xxxxxxxxxxxxxxx>, Benny Halevy <bhalevy@xxxxxxxxxxxxxxx>, Jan Kara <jack@xxxxxxx>, Theodore Ts'o <tytso@xxxxxxx>, Andreas Dilger <adilger.kernel@xxxxxxxxx>, Jaegeuk Kim <jaegeuk@xxxxxxxxxx>, Changman Lee <cm224.lee@xxxxxxxxxxx>, Miklos Szeredi <miklos@xxxxxxxxxx>, Steven Whitehouse <swhiteho@xxxxxxxxxx>, Dave Kleikamp <shaggy@xxxxxxxxxx>, Oleg Drokin <oleg.drokin@xxxxxxxxx>, Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>, Anna Schumaker <anna.schumaker@xxxxxxxxxx>, Ryusuke Konishi <konishi.ryusuke@xxxxxxxxxxxxx>, Mark Fasheh <mfasheh@xxxxxxxx>, Joel Becker <jlbec@xxxxxxxxxxxx>, Eric Van Hensbergen <ericvh@xxxxxxxxx>, Ron Minnich <rminnich@xxxxxxxxxx>, Latchesar Ionkov <lucho@xxxxxxxxxx>, Dave Chinner <david@xxxxxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <34dc78b262546e9343e0ed872232a97f5eaa5f15.1426502566.git.osandov@xxxxxxxxxxx>
References: <cover.1426502566.git.osandov@xxxxxxxxxxx> <34dc78b262546e9343e0ed872232a97f5eaa5f15.1426502566.git.osandov@xxxxxxxxxxx>
Sender: Al Viro <viro@xxxxxxxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Mon, Mar 16, 2015 at 04:33:49AM -0700, Omar Sandoval wrote:
> Get either READ or WRITE out of iter->type.

Umm...  

> + * Get one of READ or WRITE out of iter->type without any other flags OR'd in
> + * with it.
> + */
> +static inline int iov_iter_rw(const struct iov_iter *i)
> +{
> +     return i->type & RW_MASK;
> +}

TBH, I would turn that into a macro.  Reason: indirect includes.

How about

#define iov_iter_rw(i) ((0 ? (struct iov_iter *)0 : (i))->type & RW_MASK)

Should do you all the type safety of inline function and avoids the need
to include fs.h in uio.h; _users_ of iov_iter_rw() obviously still need
fs.h, but such places always used to...

<Prev in Thread] Current Thread [Next in Thread>