linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* interims VFS queue
@ 2011-10-28 13:30 Christoph Hellwig
  2011-10-28 18:43 ` Stephen Rothwell
                   ` (2 more replies)
  0 siblings, 3 replies; 20+ messages in thread
From: Christoph Hellwig @ 2011-10-28 13:30 UTC (permalink / raw)
  To: torvalds, sfr; +Cc: linux-fsdevel

As discussed at KS I've collected up the VFS patches from 3 month worth
of linux-fsdevel archives.

The major changes are lseek locking and O_DIRECT cache footprint
optimizations from Andi Kleen, which Al already had queued up in his
non-public queue before he caught the flu.  In addition to that
it's just fairly small patches.  If I missed anything important please
send it my way until Al is back.


There is a few promiment things intentionally missing:

 - ->d_prune support from Sage.  I though we finally had this one nailed
   down a few weeks ago, but it crashes btrfs when running xfstests, so
   we'll need another round.
 - Miklos' remount r/o fixes.  I really wanted them, but found a few
   minor issue and want to give them more QA first.  Hopefully we can
   get them in during a second pull for 3.2, even more hopefull Al will
   be back in time as he hasn't replied back to Miklos' answers to his
   comments.
 - the block queue caching part of Andis O_DIRECT patches.  With the
   current mess we have with the block queues I'd rather defer that
   part for now, hopefull we can still put it in later.
 - the btrfs lseek cleanups as part of the lseek series - I think they
   are correct, but I fear we might run into a merge mess with them
   as Chris said he picked them up for the btrfs tree a while ago.

The tree is at

  git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue.git for-next

and I'd prefer if Stephen could add it to linux-next for a day or two
before pulling it into mainline.

The git request-pull information is below:



The following changes since commit c3b92c8787367a8bb53d57d9789b558f1295cc96:

  Linux 3.1 (2011-10-24 09:10:05 +0200)

are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue.git for-next

Andi Kleen (11):
      direct-io: separate fields only used in the submission path from struct dio
      direct-io: fix a wrong comment
      direct-io: rearrange fields in dio/dio_submit to avoid holes
      direct-io: use a slab cache for struct dio
      direct-io: separate map_bh from dio
      direct-io: inline the complete submission path
      direct-io: merge direct_io_walker into __blockdev_direct_IO
      vfs: do (nearly) lockless generic_file_llseek
      vfs: add generic_file_llseek_size
      ext4: replace cut'n'pasted llseek code with generic_file_llseek_size
      nfs: drop unnecessary locking in llseek

Andreas Gruenbacher (3):
      vfs: indicate that the permission functions take all the MAY_* flags
      vfs: pass all mask flags check_acl and posix_acl_permission
      vfs: add a comment to inode_permission()

Aneesh Kumar K.V (1):
      vfs: add hex format for MAY_* flag values

Bryan Schumaker (1):
      vfs: add "device" tag to /proc/self/mountstats

Christoph Hellwig (1):
      vfs: fix spinning prevention in prune_icache_sb

Eric W. Biederman (1):
      compat: sync compat_stats with statfs.

J. Bruce Fields (1):
      leases: fix write-open/read-lease race

Jeff Layton (1):
      vfs: iov_iter: have iov_iter_advance decrement nr_segs appropriately

Wang Sheng-Hui (1):
      cleanup: vfs: small comment fix for block_invalidatepage

 arch/mips/include/asm/compat.h    |    3 +-
 arch/parisc/include/asm/compat.h  |    3 +-
 arch/powerpc/include/asm/compat.h |    3 +-
 arch/s390/include/asm/compat.h    |    3 +-
 arch/sparc/include/asm/compat.h   |    3 +-
 arch/x86/include/asm/compat.h     |    3 +-
 fs/btrfs/file.c                   |    2 +-
 fs/buffer.c                       |    4 +-
 fs/cifs/cifsfs.c                  |    2 +-
 fs/compat.c                       |    7 +-
 fs/direct-io.c                    |  646 +++++++++++++++++++------------------
 fs/ext4/file.c                    |   47 +---
 fs/gfs2/file.c                    |    4 +-
 fs/inode.c                        |    2 +-
 fs/namei.c                        |   17 +-
 fs/namespace.c                    |    1 +
 fs/nfs/file.c                     |   10 +-
 fs/open.c                         |    4 +
 fs/posix_acl.c                    |    2 +
 fs/read_write.c                   |   74 +++--
 include/linux/fs.h                |   28 +-
 mm/filemap.c                      |    3 +
 22 files changed, 440 insertions(+), 431 deletions(-)

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: interims VFS queue
  2011-10-28 13:30 interims VFS queue Christoph Hellwig
@ 2011-10-28 18:43 ` Stephen Rothwell
  2011-10-28 19:08   ` Linus Torvalds
  2011-10-28 19:13   ` Stephen Rothwell
  2011-10-28 22:09 ` Andrew Morton
  2011-11-02 13:28 ` interims VFS queue, part2 Christoph Hellwig
  2 siblings, 2 replies; 20+ messages in thread
From: Stephen Rothwell @ 2011-10-28 18:43 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: torvalds, linux-fsdevel

[-- Attachment #1: Type: text/plain, Size: 756 bytes --]

Hi Christoph,

On Fri, 28 Oct 2011 09:30:17 -0400 Christoph Hellwig <hch@infradead.org> wrote:
>
> The tree is at
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue.git for-next
> 
> and I'd prefer if Stephen could add it to linux-next for a day or two
> before pulling it into mainline.

I can do that, however I will be travelling from tomorrow until Nov 1, so
the next linux-next release will be then (hopefully).  If that is not too
late (there should still be 5 or 6 days of the merge window left), then
I will put it in that release.  If it goes to Linus in the meantime, then
that will save me some work :-)

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: interims VFS queue
  2011-10-28 18:43 ` Stephen Rothwell
@ 2011-10-28 19:08   ` Linus Torvalds
  2011-10-28 19:31     ` Stephen Rothwell
  2011-10-28 19:13   ` Stephen Rothwell
  1 sibling, 1 reply; 20+ messages in thread
From: Linus Torvalds @ 2011-10-28 19:08 UTC (permalink / raw)
  To: Stephen Rothwell; +Cc: Christoph Hellwig, linux-fsdevel

On Fri, Oct 28, 2011 at 11:43 AM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> I can do that, however I will be travelling from tomorrow until Nov 1, so
> the next linux-next release will be then (hopefully).  If that is not too
> late (there should still be 5 or 6 days of the merge window left), then
> I will put it in that release.  If it goes to Linus in the meantime, then
> that will save me some work :-)

I decided to pull it, because it's going to get more testing in my
tree anyway. And I was pulling filesystems, so pulling the VFS patches
at the same time just fit.

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

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: interims VFS queue
  2011-10-28 18:43 ` Stephen Rothwell
  2011-10-28 19:08   ` Linus Torvalds
@ 2011-10-28 19:13   ` Stephen Rothwell
  1 sibling, 0 replies; 20+ messages in thread
From: Stephen Rothwell @ 2011-10-28 19:13 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: torvalds, linux-fsdevel

[-- Attachment #1: Type: text/plain, Size: 907 bytes --]

Hi Christoph,

On Sat, 29 Oct 2011 05:43:10 +1100 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> On Fri, 28 Oct 2011 09:30:17 -0400 Christoph Hellwig <hch@infradead.org> wrote:
> >
> > The tree is at
> > 
> >   git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue.git for-next
> > 
> > and I'd prefer if Stephen could add it to linux-next for a day or two
> > before pulling it into mainline.
> 
> I can do that, however I will be travelling from tomorrow until Nov 1, so
> the next linux-next release will be then (hopefully).  If that is not too
> late (there should still be 5 or 6 days of the merge window left), then
> I will put it in that release.  If it goes to Linus in the meantime, then
> that will save me some work :-)

Looks like Linus already took it.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: interims VFS queue
  2011-10-28 19:08   ` Linus Torvalds
@ 2011-10-28 19:31     ` Stephen Rothwell
  0 siblings, 0 replies; 20+ messages in thread
From: Stephen Rothwell @ 2011-10-28 19:31 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christoph Hellwig, linux-fsdevel

[-- Attachment #1: Type: text/plain, Size: 416 bytes --]

Hi Linus,

On Fri, 28 Oct 2011 12:08:55 -0700 Linus Torvalds <torvalds@linux-foundation.org> wrote:
>
> I decided to pull it, because it's going to get more testing in my
> tree anyway. And I was pulling filesystems, so pulling the VFS patches
> at the same time just fit.

Yep, just noticed that.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: interims VFS queue
  2011-10-28 13:30 interims VFS queue Christoph Hellwig
  2011-10-28 18:43 ` Stephen Rothwell
@ 2011-10-28 22:09 ` Andrew Morton
  2011-10-29 10:58   ` Christoph Hellwig
                     ` (2 more replies)
  2011-11-02 13:28 ` interims VFS queue, part2 Christoph Hellwig
  2 siblings, 3 replies; 20+ messages in thread
From: Andrew Morton @ 2011-10-28 22:09 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: torvalds, sfr, linux-fsdevel, Andi Kleen, Tao Ma, Andy Whitcroft,
	Hans Verkuil

On Fri, 28 Oct 2011 09:30:17 -0400
Christoph Hellwig <hch@infradead.org> wrote:

> As discussed at KS I've collected up the VFS patches from 3 month worth
> of linux-fsdevel archives.

vfs things..

1: What happened with Andi's "dio: optimize cache misses in the
   submission path"?  (Against which I have checkpatch fixes and
   #include linux/prefetch.h, btw)

2: I'm still sitting on Andy Whitcroft's "readlinkat: ensure we
   return ENOENT for the empty pathname for normal lookups" and its
   fixup.  I'd marked this as needed-in-3.1.  Help.

From: Andy Whitcroft <apw@canonical.com>
Subject: readlinkat: ensure we return ENOENT for the empty pathname for normal lookups

Since the commit below which added O_PATH support to the *at() calls, the
error return for readlink/readlinkat for the empty pathname has switched
from ENOENT to EINVAL:

  commit 65cfc6722361570bfe255698d9cd4dccaf47570d
  Author: Al Viro <viro@zeniv.linux.org.uk>
  Date:   Sun Mar 13 15:56:26 2011 -0400

    readlinkat(), fchownat() and fstatat() with empty relative pathnames

This is both unexpected for userspace and makes readlink/readlinkat
inconsistant with all other interfaces; and inconsistant with our stated
return for these pathnames.

As the readlinkat call does not have a flags parameter we cannot use the
AT_EMPTY_PATH approach used in the other calls.  Therefore expose whether
the original path is infact entry via a new user_path_at_empty() path
lookup function.  Use this to determine whether to default to EINVAL or
ENOENT for failures.

Addresses http://bugs.launchpad.net/bugs/817187

[akpm@linux-foundation.org: remove unused getname_flags()]
Signed-off-by: Andy Whitcroft <apw@canonical.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: <stable@kernel.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---

 fs/namei.c            |   19 ++++++++++++++-----
 fs/stat.c             |    5 +++--
 include/linux/namei.h |    1 +
 3 files changed, 18 insertions(+), 7 deletions(-)

diff -puN fs/namei.c~readlinkat-ensure-we-return-enoent-for-the-empty-pathname-for-normal-lookups fs/namei.c
--- a/fs/namei.c~readlinkat-ensure-we-return-enoent-for-the-empty-pathname-for-normal-lookups
+++ a/fs/namei.c
@@ -137,7 +137,8 @@ static int do_getname(const char __user 
 	return retval;
 }
 
-static char *getname_flags(const char __user * filename, int flags)
+static char *getname_flags_empty(const char __user * filename,
+							int flags, int *empty)
 {
 	char *tmp, *result;
 
@@ -148,6 +149,8 @@ static char *getname_flags(const char __
 
 		result = tmp;
 		if (retval < 0) {
+			if (retval == -ENOENT && empty)
+				*empty = 1;
 			if (retval != -ENOENT || !(flags & LOOKUP_EMPTY)) {
 				__putname(tmp);
 				result = ERR_PTR(retval);
@@ -160,7 +163,7 @@ static char *getname_flags(const char __
 
 char *getname(const char __user * filename)
 {
-	return getname_flags(filename, 0);
+	return getname_flags_empty(filename, 0, 0);
 }
 
 #ifdef CONFIG_AUDITSYSCALL
@@ -1798,11 +1801,11 @@ struct dentry *lookup_one_len(const char
 	return __lookup_hash(&this, base, NULL);
 }
 
-int user_path_at(int dfd, const char __user *name, unsigned flags,
-		 struct path *path)
+int user_path_at_empty(int dfd, const char __user *name, unsigned flags,
+		 struct path *path, int *empty)
 {
 	struct nameidata nd;
-	char *tmp = getname_flags(name, flags);
+	char *tmp = getname_flags_empty(name, flags, empty);
 	int err = PTR_ERR(tmp);
 	if (!IS_ERR(tmp)) {
 
@@ -1816,6 +1819,12 @@ int user_path_at(int dfd, const char __u
 	return err;
 }
 
+int user_path_at(int dfd, const char __user *name, unsigned flags,
+		 struct path *path)
+{
+	return user_path_at_empty(dfd, name, flags, path, 0);
+}
+
 static int user_path_parent(int dfd, const char __user *path,
 			struct nameidata *nd, char **name)
 {
diff -puN fs/stat.c~readlinkat-ensure-we-return-enoent-for-the-empty-pathname-for-normal-lookups fs/stat.c
--- a/fs/stat.c~readlinkat-ensure-we-return-enoent-for-the-empty-pathname-for-normal-lookups
+++ a/fs/stat.c
@@ -294,15 +294,16 @@ SYSCALL_DEFINE4(readlinkat, int, dfd, co
 {
 	struct path path;
 	int error;
+	int empty = 0;
 
 	if (bufsiz <= 0)
 		return -EINVAL;
 
-	error = user_path_at(dfd, pathname, LOOKUP_EMPTY, &path);
+	error = user_path_at_empty(dfd, pathname, LOOKUP_EMPTY, &path, &empty);
 	if (!error) {
 		struct inode *inode = path.dentry->d_inode;
 
-		error = -EINVAL;
+		error = (empty) ? -ENOENT : -EINVAL;
 		if (inode->i_op->readlink) {
 			error = security_inode_readlink(path.dentry);
 			if (!error) {
diff -puN include/linux/namei.h~readlinkat-ensure-we-return-enoent-for-the-empty-pathname-for-normal-lookups include/linux/namei.h
--- a/include/linux/namei.h~readlinkat-ensure-we-return-enoent-for-the-empty-pathname-for-normal-lookups
+++ a/include/linux/namei.h
@@ -67,6 +67,7 @@ enum {LAST_NORM, LAST_ROOT, LAST_DOT, LA
 #define LOOKUP_EMPTY		0x4000
 
 extern int user_path_at(int, const char __user *, unsigned, struct path *);
+extern int user_path_at_empty(int, const char __user *, unsigned, struct path *, int *empty);
 
 #define user_path(name, path) user_path_at(AT_FDCWD, name, LOOKUP_FOLLOW, path)
 #define user_lpath(name, path) user_path_at(AT_FDCWD, name, 0, path)
_



3: I'm also sitting on Hans Verkuil's "poll: add
   poll_requested_events() function".  This is being merged via the v4l
   tree, based on looks-ok-to-akpm.  AFAIK nobody else has looked at
   it.  This should be in linux-next via the v4l tree by now, but it
   isn't, so something might have gone wrong.


4: I'm still sitting on Steve Rago's "fcntl(F_SETFL): allow setting
   of O_SYNC".  I have a comment here that you said it "needs an
   audit".  AFAIK nothing has happened.  Should I toss it?


From: Steve Rago <sar@nec-labs.com>
Subject: fcntl(F_SETFL): allow setting of O_SYNC

This has probably been a problem since day 1 (I ran into this running the
2.4 kernel years ago; finally got around to fixing it).  The problem is
that fcntl(fd, F_SETFL, flags|O_SYNC) appears to work, but silently
ignores the O_SYNC flag.  Opening the file with O_SYNC works okay, but
setting it later on via fcntl doesn't work.

akpm: will cause surprise slowdowns of applications such as
http://koders.com/c/fidA34D8D5EE9AA5D0AB0F3C604678E2E935E5B0246.aspx?s=dupa

akpm: maybe we should sync the file when someone sets O_SYNC.

Signed-off-by: Steve Rago <sar@nec-labs.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---

 fs/fcntl.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff -puN fs/fcntl.c~fcntlf_setfl-allow-setting-of-o_sync fs/fcntl.c
--- a/fs/fcntl.c~fcntlf_setfl-allow-setting-of-o_sync
+++ a/fs/fcntl.c
@@ -143,7 +143,7 @@ SYSCALL_DEFINE1(dup, unsigned int, filde
 	return ret;
 }
 
-#define SETFL_MASK (O_APPEND | O_NONBLOCK | O_NDELAY | O_DIRECT | O_NOATIME)
+#define SETFL_MASK (O_APPEND | O_NONBLOCK | O_NDELAY | O_DIRECT | O_NOATIME | O_SYNC)
 
 static int setfl(int fd, struct file * filp, unsigned long arg)
 {
_



5: Tao Ma's "fs/direct-io.c: calculate fs_count correctly in
   get_more_blocks()" was missed and needs rework as a result of this
   merge.  Here's what I now have.  It compiles.


From: Tao Ma <boyu.mt@taobao.com>
Subject: fs/direct-io.c: calculate fs_count correctly in get_more_blocks()

In get_more_blocks(), we use dio_count to calcuate fs_count and do some
tricky things to increase fs_count if dio_count isn't aligned.  But
actually it still has some corner cases that can't be coverd.  See the
following example:

	dio_write foo -s 1024 -w 4096

(direct write 4096 bytes at offset 1024).  The same goes if the offset
isn't aligned to fs_blocksize.

In this case, the old calculation counts fs_count to be 1, but actually we
will write into 2 different blocks (if fs_blocksize=4096).  The old code
just works, since it will call get_block twice (and may have to allocate
and create extents twice for filesystems like ext4).  So we'd better call
get_block just once with the proper fs_count.

Signed-off-by: Tao Ma <boyu.mt@taobao.com>
Cc: "Theodore Ts'o" <tytso@mit.edu>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---

 fs/direct-io.c |   11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff -puN fs/direct-io.c~fs-direct-ioc-calcuate-fs_count-correctly-in-get_more_blocks fs/direct-io.c
--- a/fs/direct-io.c~fs-direct-ioc-calcuate-fs_count-correctly-in-get_more_blocks
+++ a/fs/direct-io.c
@@ -580,9 +580,8 @@ static int get_more_blocks(struct dio *d
 {
 	int ret;
 	sector_t fs_startblk;	/* Into file, in filesystem-sized blocks */
+	sector_t fs_endblk;	/* Into file, in filesystem-sized blocks */
 	unsigned long fs_count;	/* Number of filesystem-sized blocks */
-	unsigned long dio_count;/* Number of dio_block-sized blocks */
-	unsigned long blkmask;
 	int create;
 
 	/*
@@ -593,11 +592,9 @@ static int get_more_blocks(struct dio *d
 	if (ret == 0) {
 		BUG_ON(sdio->block_in_file >= sdio->final_block_in_request);
 		fs_startblk = sdio->block_in_file >> sdio->blkfactor;
-		dio_count = sdio->final_block_in_request - sdio->block_in_file;
-		fs_count = dio_count >> sdio->blkfactor;
-		blkmask = (1 << sdio->blkfactor) - 1;
-		if (dio_count & blkmask)	
-			fs_count++;
+		fs_endblk = (sdio->final_block_in_request - 1) >>
+					sdio->blkfactor;
+		fs_count = fs_endblk - fs_startblk + 1;
 
 		map_bh->b_state = 0;
 		map_bh->b_size = fs_count << dio->inode->i_blkbits;
_





^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: interims VFS queue
  2011-10-28 22:09 ` Andrew Morton
@ 2011-10-29 10:58   ` Christoph Hellwig
  2011-10-29 11:49     ` caching the request queue was " Andi Kleen
                       ` (2 more replies)
  2011-10-29 13:48   ` interims VFS queue Aneesh Kumar K.V
  2011-10-30 15:47   ` Hans Verkuil
  2 siblings, 3 replies; 20+ messages in thread
From: Christoph Hellwig @ 2011-10-29 10:58 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Christoph Hellwig, torvalds, sfr, linux-fsdevel, Andi Kleen,
	Tao Ma, Andy Whitcroft, Hans Verkuil

On Fri, Oct 28, 2011 at 03:09:36PM -0700, Andrew Morton wrote:
> 1: What happened with Andi's "dio: optimize cache misses in the
>    submission path"?  (Against which I have checkpatch fixes and
>    #include linux/prefetch.h, btw)

It has mostly been merged, including all whitespace fixes and some
folding.  What is missing is the last two patchees because I don't
want to put the request_queue caching in until the remaining
lifetime issues for the request queue are sorted out, and the last
patch (which would need prefetch.h) depends on it.

> 
> 2: I'm still sitting on Andy Whitcroft's "readlinkat: ensure we
>    return ENOENT for the empty pathname for normal lookups" and its
>    fixup.  I'd marked this as needed-in-3.1.  Help.



> 
> From: Andy Whitcroft <apw@canonical.com>
> Subject: readlinkat: ensure we return ENOENT for the empty pathname for normal lookups
> 
> Since the commit below which added O_PATH support to the *at() calls, the
> error return for readlink/readlinkat for the empty pathname has switched
> from ENOENT to EINVAL:

The fix is defintively required, I'll look over it in a bit more detail
and will push it with the next round.

> 
> 3: I'm also sitting on Hans Verkuil's "poll: add
>    poll_requested_events() function".  This is being merged via the v4l
>    tree, based on looks-ok-to-akpm.  AFAIK nobody else has looked at
>    it.  This should be in linux-next via the v4l tree by now, but it
>    isn't, so something might have gone wrong.

That was my assumption, too. 

> 
> 4: I'm still sitting on Steve Rago's "fcntl(F_SETFL): allow setting
>    of O_SYNC".  I have a comment here that you said it "needs an
>    audit".  AFAIK nothing has happened.  Should I toss it?

This also needs all the other bits I mentioned during review.

> 5: Tao Ma's "fs/direct-io.c: calculate fs_count correctly in
>    get_more_blocks()" was missed and needs rework as a result of this
>    merge.  Here's what I now have.  It compiles.

Tao, can you please resend it against current Linus' tree after making
sure the upated version is still fine?


^ permalink raw reply	[flat|nested] 20+ messages in thread

* caching the request queue was Re: interims VFS queue
  2011-10-29 10:58   ` Christoph Hellwig
@ 2011-10-29 11:49     ` Andi Kleen
  2011-11-02  2:47       ` Vivek Goyal
  2011-10-30  7:36     ` Tao Ma
  2011-10-31  7:24     ` [PATCH for 3.2] fs/direct-io.c: Calculate fs_count correctly in get_more_blocks Tao Ma
  2 siblings, 1 reply; 20+ messages in thread
From: Andi Kleen @ 2011-10-29 11:49 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Andrew Morton, torvalds, sfr, linux-fsdevel, Andi Kleen, Tao Ma,
	Andy Whitcroft, Hans Verkuil, axboe

On Sat, Oct 29, 2011 at 06:58:56AM -0400, Christoph Hellwig wrote:
> On Fri, Oct 28, 2011 at 03:09:36PM -0700, Andrew Morton wrote:
> > 1: What happened with Andi's "dio: optimize cache misses in the
> >    submission path"?  (Against which I have checkpatch fixes and
> >    #include linux/prefetch.h, btw)
> 
> It has mostly been merged, including all whitespace fixes and some
> folding.  What is missing is the last two patchees because I don't
> want to put the request_queue caching in until the remaining
> lifetime issues for the request queue are sorted out, and the last
> patch (which would need prefetch.h) depends on it.

I asked Jens in person and he seemed ok with with the queue 
caching. Jens can you ack?


-Andi

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: interims VFS queue
  2011-10-28 22:09 ` Andrew Morton
  2011-10-29 10:58   ` Christoph Hellwig
@ 2011-10-29 13:48   ` Aneesh Kumar K.V
  2011-10-29 14:37     ` Christoph Hellwig
  2011-10-30 15:47   ` Hans Verkuil
  2 siblings, 1 reply; 20+ messages in thread
From: Aneesh Kumar K.V @ 2011-10-29 13:48 UTC (permalink / raw)
  To: Andrew Morton, Christoph Hellwig
  Cc: torvalds, sfr, linux-fsdevel, Andi Kleen, Tao Ma, Andy Whitcroft,
	Hans Verkuil

On Fri, 28 Oct 2011 15:09:36 -0700, Andrew Morton <akpm@linux-foundation.org> wrote:
> On Fri, 28 Oct 2011 09:30:17 -0400
> Christoph Hellwig <hch@infradead.org> wrote:
> 
> > As discussed at KS I've collected up the VFS patches from 3 month worth
> > of linux-fsdevel archives.
> 
> vfs things..
> 
> 1: What happened with Andi's "dio: optimize cache misses in the
>    submission path"?  (Against which I have checkpatch fixes and
>    #include linux/prefetch.h, btw)
> 
> 2: I'm still sitting on Andy Whitcroft's "readlinkat: ensure we
>    return ENOENT for the empty pathname for normal lookups" and its
>    fixup.  I'd marked this as needed-in-3.1.  Help.


I had discussed this with Al Viro. He mentioned that he wanted to do it
differently. 
 
-aneesh



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: interims VFS queue
  2011-10-29 13:48   ` interims VFS queue Aneesh Kumar K.V
@ 2011-10-29 14:37     ` Christoph Hellwig
  0 siblings, 0 replies; 20+ messages in thread
From: Christoph Hellwig @ 2011-10-29 14:37 UTC (permalink / raw)
  To: Aneesh Kumar K.V
  Cc: Andrew Morton, Christoph Hellwig, torvalds, sfr, linux-fsdevel,
	Andi Kleen, Tao Ma, Andy Whitcroft, Hans Verkuil

On Sat, Oct 29, 2011 at 07:18:29PM +0530, Aneesh Kumar K.V wrote:
> > 2: I'm still sitting on Andy Whitcroft's "readlinkat: ensure we
> >    return ENOENT for the empty pathname for normal lookups" and its
> >    fixup.  I'd marked this as needed-in-3.1.  Help.
> 
> 
> I had discussed this with Al Viro. He mentioned that he wanted to do it
> differently. 

We will have to put a fix in, given that it is a regression in syscall
behaviour from a previous version.  I don't overly like the impact
the current patch has, but unless we can come up with something better
rather quickly I think we have to put Andy's patch in for now.


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: interims VFS queue
  2011-10-29 10:58   ` Christoph Hellwig
  2011-10-29 11:49     ` caching the request queue was " Andi Kleen
@ 2011-10-30  7:36     ` Tao Ma
  2011-10-31  7:24     ` [PATCH for 3.2] fs/direct-io.c: Calculate fs_count correctly in get_more_blocks Tao Ma
  2 siblings, 0 replies; 20+ messages in thread
From: Tao Ma @ 2011-10-30  7:36 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Andrew Morton, torvalds, sfr, linux-fsdevel, Andi Kleen, Tao Ma,
	Andy Whitcroft, Hans Verkuil

On 10/29/2011 06:58 PM, Christoph Hellwig wrote:
> On Fri, Oct 28, 2011 at 03:09:36PM -0700, Andrew Morton wrote:
>> 1: What happened with Andi's "dio: optimize cache misses in the
>>    submission path"?  (Against which I have checkpatch fixes and
>>    #include linux/prefetch.h, btw)
> 
> It has mostly been merged, including all whitespace fixes and some
> folding.  What is missing is the last two patchees because I don't
> want to put the request_queue caching in until the remaining
> lifetime issues for the request queue are sorted out, and the last
> patch (which would need prefetch.h) depends on it.
> 
>>
>> 2: I'm still sitting on Andy Whitcroft's "readlinkat: ensure we
>>    return ENOENT for the empty pathname for normal lookups" and its
>>    fixup.  I'd marked this as needed-in-3.1.  Help.
> 
> 
> 
>>
>> From: Andy Whitcroft <apw@canonical.com>
>> Subject: readlinkat: ensure we return ENOENT for the empty pathname for normal lookups
>>
>> Since the commit below which added O_PATH support to the *at() calls, the
>> error return for readlink/readlinkat for the empty pathname has switched
>> from ENOENT to EINVAL:
> 
> The fix is defintively required, I'll look over it in a bit more detail
> and will push it with the next round.
> 
>>
>> 3: I'm also sitting on Hans Verkuil's "poll: add
>>    poll_requested_events() function".  This is being merged via the v4l
>>    tree, based on looks-ok-to-akpm.  AFAIK nobody else has looked at
>>    it.  This should be in linux-next via the v4l tree by now, but it
>>    isn't, so something might have gone wrong.
> 
> That was my assumption, too. 
> 
>>
>> 4: I'm still sitting on Steve Rago's "fcntl(F_SETFL): allow setting
>>    of O_SYNC".  I have a comment here that you said it "needs an
>>    audit".  AFAIK nothing has happened.  Should I toss it?
> 
> This also needs all the other bits I mentioned during review.
> 
>> 5: Tao Ma's "fs/direct-io.c: calculate fs_count correctly in
>>    get_more_blocks()" was missed and needs rework as a result of this
>>    merge.  Here's what I now have.  It compiles.
> 
> Tao, can you please resend it against current Linus' tree after making
> sure the upated version is still fine?
OK, I will try to rebase it and do some test against it.

Thanks.
Tao

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: interims VFS queue
  2011-10-28 22:09 ` Andrew Morton
  2011-10-29 10:58   ` Christoph Hellwig
  2011-10-29 13:48   ` interims VFS queue Aneesh Kumar K.V
@ 2011-10-30 15:47   ` Hans Verkuil
  2 siblings, 0 replies; 20+ messages in thread
From: Hans Verkuil @ 2011-10-30 15:47 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Christoph Hellwig, torvalds, sfr, linux-fsdevel, Andi Kleen,
	Tao Ma, Andy Whitcroft, Mauro Carvalho Chehab

On Saturday, October 29, 2011 00:09:36 Andrew Morton wrote:
> 3: I'm also sitting on Hans Verkuil's "poll: add
>    poll_requested_events() function".  This is being merged via the v4l
>    tree, based on looks-ok-to-akpm.  AFAIK nobody else has looked at
>    it.  This should be in linux-next via the v4l tree by now, but it
>    isn't, so something might have gone wrong.

I don't believe Mauro merged this in the v4l tree yet. I've added Mauro to
the CC list since this is now in his hands. I believe he also talked to some
people at the kernel summit about this to get additional review(s), but I may
have misunderstood that part.

Regards,

	Hans

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH for 3.2] fs/direct-io.c: Calculate fs_count correctly in get_more_blocks.
  2011-10-29 10:58   ` Christoph Hellwig
  2011-10-29 11:49     ` caching the request queue was " Andi Kleen
  2011-10-30  7:36     ` Tao Ma
@ 2011-10-31  7:24     ` Tao Ma
  2011-10-31 18:12       ` Jeff Moyer
  2 siblings, 1 reply; 20+ messages in thread
From: Tao Ma @ 2011-10-31  7:24 UTC (permalink / raw)
  To: linux-fsdevel; +Cc: linux-devel, Christoph Hellwig, Al Viro, Andrew Morton

From: Tao Ma <boyu.mt@taobao.com>

In get_more_blocks, we use dio_count to calculate fs_count and do some
tricky things to increase fs_count if dio_count isn't aligned. But
actually it still has some cornor case that can't be coverd. See the
following example:
./dio_write foo -s 1024 -w 4096(direct write 4096 bytes at offset 1024).
The same goes if the offset isn't aligned to fs_blocksize.

In this case, the old calculation counts fs_count to be 1, but actually
we will write into 2 different blocks(if fs_blocksize=4096). The old code
just works, since it will call get_block twice(and may have to allocate
and create extent twice for file systems like ext4). So we'd better call
get_block just once with the proper fs_count.

Cc: Christoph Hellwig <hch@lst.de>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Tao Ma <boyu.mt@taobao.com>
---
Christoph, this is the updated version. I have done some tests against it and
it works. And the only difference between the old and this one is the change
from dio to sdio. Thanks.

 fs/direct-io.c |   11 ++++-------
 1 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/fs/direct-io.c b/fs/direct-io.c
index d740ab6..5582183 100644
--- a/fs/direct-io.c
+++ b/fs/direct-io.c
@@ -580,9 +580,8 @@ static int get_more_blocks(struct dio *dio, struct dio_submit *sdio,
 {
 	int ret;
 	sector_t fs_startblk;	/* Into file, in filesystem-sized blocks */
+	sector_t fs_endblk;	/* Into file, in filesystem-sized blocks */
 	unsigned long fs_count;	/* Number of filesystem-sized blocks */
-	unsigned long dio_count;/* Number of dio_block-sized blocks */
-	unsigned long blkmask;
 	int create;
 
 	/*
@@ -593,11 +592,9 @@ static int get_more_blocks(struct dio *dio, struct dio_submit *sdio,
 	if (ret == 0) {
 		BUG_ON(sdio->block_in_file >= sdio->final_block_in_request);
 		fs_startblk = sdio->block_in_file >> sdio->blkfactor;
-		dio_count = sdio->final_block_in_request - sdio->block_in_file;
-		fs_count = dio_count >> sdio->blkfactor;
-		blkmask = (1 << sdio->blkfactor) - 1;
-		if (dio_count & blkmask)	
-			fs_count++;
+		fs_endblk = (sdio->final_block_in_request - 1) >>
+				sdio->blkfactor;
+		fs_count = fs_endblk - fs_startblk + 1;
 
 		map_bh->b_state = 0;
 		map_bh->b_size = fs_count << dio->inode->i_blkbits;
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH for 3.2] fs/direct-io.c: Calculate fs_count correctly in get_more_blocks.
  2011-10-31  7:24     ` [PATCH for 3.2] fs/direct-io.c: Calculate fs_count correctly in get_more_blocks Tao Ma
@ 2011-10-31 18:12       ` Jeff Moyer
  2011-11-01  3:31         ` Tao Ma
  2011-11-02  2:26         ` [PATCH V2 " Tao Ma
  0 siblings, 2 replies; 20+ messages in thread
From: Jeff Moyer @ 2011-10-31 18:12 UTC (permalink / raw)
  To: Tao Ma
  Cc: linux-fsdevel, linux-devel, Christoph Hellwig, Al Viro,
	Andrew Morton

Tao Ma <tm@tao.ma> writes:

> From: Tao Ma <boyu.mt@taobao.com>
>
> In get_more_blocks, we use dio_count to calculate fs_count and do some
> tricky things to increase fs_count if dio_count isn't aligned. But
> actually it still has some cornor case that can't be coverd. See the
> following example:
> ./dio_write foo -s 1024 -w 4096(direct write 4096 bytes at offset 1024).
> The same goes if the offset isn't aligned to fs_blocksize.
>
> In this case, the old calculation counts fs_count to be 1, but actually
> we will write into 2 different blocks(if fs_blocksize=4096). The old code
> just works, since it will call get_block twice(and may have to allocate
> and create extent twice for file systems like ext4). So we'd better call
> get_block just once with the proper fs_count.

This description was *really* hard for me to understand.  It seems to me
that right now there's an inefficiency in the code.  It's not clear
whether you're claiming that it was introduced recently, though.  Was
it, or has this problem been around for a while?

How did you notice this?  Was there any evidence of a problem, such as
performance overhead or less than ideal file layout?

Anyway, I agree that the code does not correctly calculate the number of
file system blocks in a request.  I also agree that your patch fixes
that issue.

Please ammend the description and then you can add my:

Acked-by: Jeff Moyer <jmoyer@redhat.com>

Cheers,
Jeff

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH for 3.2] fs/direct-io.c: Calculate fs_count correctly in get_more_blocks.
  2011-10-31 18:12       ` Jeff Moyer
@ 2011-11-01  3:31         ` Tao Ma
  2011-11-02  2:26         ` [PATCH V2 " Tao Ma
  1 sibling, 0 replies; 20+ messages in thread
From: Tao Ma @ 2011-11-01  3:31 UTC (permalink / raw)
  To: Jeff Moyer
  Cc: linux-fsdevel, linux-kernel, Christoph Hellwig, Al Viro,
	Andrew Morton

On 11/01/2011 02:12 AM, Jeff Moyer wrote:
> Tao Ma <tm@tao.ma> writes:
> 
>> From: Tao Ma <boyu.mt@taobao.com>
>>
>> In get_more_blocks, we use dio_count to calculate fs_count and do some
>> tricky things to increase fs_count if dio_count isn't aligned. But
>> actually it still has some cornor case that can't be coverd. See the
>> following example:
>> ./dio_write foo -s 1024 -w 4096(direct write 4096 bytes at offset 1024).
>> The same goes if the offset isn't aligned to fs_blocksize.
>>
>> In this case, the old calculation counts fs_count to be 1, but actually
>> we will write into 2 different blocks(if fs_blocksize=4096). The old code
>> just works, since it will call get_block twice(and may have to allocate
>> and create extent twice for file systems like ext4). So we'd better call
>> get_block just once with the proper fs_count.
> 
> This description was *really* hard for me to understand.  It seems to me
> that right now there's an inefficiency in the code.  It's not clear
> whether you're claiming that it was introduced recently, though.  Was
> it, or has this problem been around for a while?
Actually it is there a long time ago. And the good thing is that it
isn't a bug, only some performance overhead.
> 
> How did you notice this?  Was there any evidence of a problem, such as
> performance overhead or less than ideal file layout?
I found it when I dig into some ext4 issues. The ext4 can't create the
whole 8K(in the above case) and ext4 has to create the blocks 2 times
for just one direct i/o write. In some of our test, it costs.

> 
> Anyway, I agree that the code does not correctly calculate the number of
> file system blocks in a request.  I also agree that your patch fixes
> that issue.
> 
> Please ammend the description and then you can add my:
So how about the following commit log(please feel free to modify it if I
still don't describe it correctly).

In get_more_blocks, we use dio_count to calculate fs_count to let the
file system map(maybe also create) blocks. And some tricky things are
done to increase fs_count if dio_count isn't aligned.

But actually it still has some cornor case that can't be coverd. See the
following example:
./dio_write foo -s 1024 -w 4096(direct write 4096 bytes at offset 1024).

In this case, the old calculation counts fs_count to be 1, but actually
we will write into 2 different blocks(if fs_blocksize=4096). So the
underlying file system is called twice and leads to some performance
overhead. So fix it by calculating fs_count correctly and let the file
system knows what we really want to write.

Thanks
Tao

> 
> Acked-by: Jeff Moyer <jmoyer@redhat.com>
> 
> Cheers,
> Jeff
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH V2 for 3.2] fs/direct-io.c: Calculate fs_count correctly in get_more_blocks.
  2011-10-31 18:12       ` Jeff Moyer
  2011-11-01  3:31         ` Tao Ma
@ 2011-11-02  2:26         ` Tao Ma
  2011-11-02  7:36           ` Christoph Hellwig
  1 sibling, 1 reply; 20+ messages in thread
From: Tao Ma @ 2011-11-02  2:26 UTC (permalink / raw)
  To: linux-fsdevel; +Cc: linux-kernel, Christoph Hellwig, Al Viro, Andrew Morton

From: Tao Ma <boyu.mt@taobao.com>

In get_more_blocks, we use dio_count to calculate fs_count to let the
file system map(maybe also create) blocks. And some tricky things are
done to increase fs_count if dio_count isn't aligned.

But actually it still has some cornor case that can't be coverd. See the
following example:
./dio_write foo -s 1024 -w 4096(direct write 4096 bytes at offset 1024).

In this case, the old calculation counts fs_count to be 1, but actually
we will write into 2 different blocks(if fs_blocksize=4096). So the
underlying file system is called twice and leads to some performance
overhead. So fix it by calculating fs_count correctly and let the file
system knows what we really want to write.

Cc: Christoph Hellwig <hch@lst.de>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: Tao Ma <boyu.mt@taobao.com>
---
 fs/direct-io.c |   11 ++++-------
 1 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/fs/direct-io.c b/fs/direct-io.c
index d740ab6..5582183 100644
--- a/fs/direct-io.c
+++ b/fs/direct-io.c
@@ -580,9 +580,8 @@ static int get_more_blocks(struct dio *dio, struct dio_submit *sdio,
 {
 	int ret;
 	sector_t fs_startblk;	/* Into file, in filesystem-sized blocks */
+	sector_t fs_endblk;	/* Into file, in filesystem-sized blocks */
 	unsigned long fs_count;	/* Number of filesystem-sized blocks */
-	unsigned long dio_count;/* Number of dio_block-sized blocks */
-	unsigned long blkmask;
 	int create;
 
 	/*
@@ -593,11 +592,9 @@ static int get_more_blocks(struct dio *dio, struct dio_submit *sdio,
 	if (ret == 0) {
 		BUG_ON(sdio->block_in_file >= sdio->final_block_in_request);
 		fs_startblk = sdio->block_in_file >> sdio->blkfactor;
-		dio_count = sdio->final_block_in_request - sdio->block_in_file;
-		fs_count = dio_count >> sdio->blkfactor;
-		blkmask = (1 << sdio->blkfactor) - 1;
-		if (dio_count & blkmask)	
-			fs_count++;
+		fs_endblk = (sdio->final_block_in_request - 1) >>
+				sdio->blkfactor;
+		fs_count = fs_endblk - fs_startblk + 1;
 
 		map_bh->b_state = 0;
 		map_bh->b_size = fs_count << dio->inode->i_blkbits;
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: caching the request queue was Re: interims VFS queue
  2011-10-29 11:49     ` caching the request queue was " Andi Kleen
@ 2011-11-02  2:47       ` Vivek Goyal
  0 siblings, 0 replies; 20+ messages in thread
From: Vivek Goyal @ 2011-11-02  2:47 UTC (permalink / raw)
  To: Andi Kleen
  Cc: Christoph Hellwig, Andrew Morton, torvalds, sfr, linux-fsdevel,
	Tao Ma, Andy Whitcroft, Hans Verkuil, axboe, Tejun Heo

On Sat, Oct 29, 2011 at 01:49:16PM +0200, Andi Kleen wrote:
> On Sat, Oct 29, 2011 at 06:58:56AM -0400, Christoph Hellwig wrote:
> > On Fri, Oct 28, 2011 at 03:09:36PM -0700, Andrew Morton wrote:
> > > 1: What happened with Andi's "dio: optimize cache misses in the
> > >    submission path"?  (Against which I have checkpatch fixes and
> > >    #include linux/prefetch.h, btw)
> > 
> > It has mostly been merged, including all whitespace fixes and some
> > folding.  What is missing is the last two patchees because I don't
> > want to put the request_queue caching in until the remaining
> > lifetime issues for the request queue are sorted out, and the last
> > patch (which would need prefetch.h) depends on it.
> 
> I asked Jens in person and he seemed ok with with the queue 
> caching. Jens can you ack?

If you are caching queue in block device, you probably need to take
queue reference too using blk_get_queue().

Thanks
Vivek

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH V2 for 3.2] fs/direct-io.c: Calculate fs_count correctly in get_more_blocks.
  2011-11-02  2:26         ` [PATCH V2 " Tao Ma
@ 2011-11-02  7:36           ` Christoph Hellwig
  2011-11-03  3:21             ` Tao Ma
  0 siblings, 1 reply; 20+ messages in thread
From: Christoph Hellwig @ 2011-11-02  7:36 UTC (permalink / raw)
  To: Tao Ma
  Cc: linux-fsdevel, linux-kernel, Christoph Hellwig, Al Viro,
	Andrew Morton

The patch looks good to me, but given that it neither fixes a bug
nor a regression I'd probably call it 3.3 material at this point.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: interims VFS queue, part2
  2011-10-28 13:30 interims VFS queue Christoph Hellwig
  2011-10-28 18:43 ` Stephen Rothwell
  2011-10-28 22:09 ` Andrew Morton
@ 2011-11-02 13:28 ` Christoph Hellwig
  2 siblings, 0 replies; 20+ messages in thread
From: Christoph Hellwig @ 2011-11-02 13:28 UTC (permalink / raw)
  To: torvalds, sfr; +Cc: linux-fsdevel

Here are more VFS bits:

 - a simple leak fix for the simple_fill_super failure path.
 - Andy's fix for a user space visible error code regression in
   readlinkat.  This one is a bit ugly, and Anessh mentioned that Al
   didn't particularly like the fix, but I think we need to fix the user
   visible effects ASAP, and can clean up the implementation later.
 - the first part of Miklos' remount r/o fixes.  This is mostly
   finishing the i_link abstraction Al started a while ago, and while
   it touches a few lines it's entirely mechanical.  The second part
   is marking a filesystem as read-only even if ->remount_fs failed
   in case of an emergency remount r/o from sysrq.  I'm still looking
   into the rest of his series.
 - Sage's ->d_prune dentry operation.  This was skipped last time
   because it hit the only possible bug it could introduce.  I'm
   confident this new version is fine, and it's really needed for
   ceph to get cache coherency right.  I've ordered it at last in
   case you do not want it anymore at this stage.

The series passes xfstests without regressions on btrfs, ext3, ext4 and
xfs.

The following changes since commit 994c0e992522c123298b4a91b72f5e67ba2d1123:

  Merge branch 'next/soc' of git://git.linaro.org/people/arnd/arm-soc (2011-11-01 21:08:03 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue.git for-next

Andy Whitcroft (1):
      readlinkat: ensure we return ENOENT for the empty pathname for normal lookups

Konstantin Khlebnikov (1):
      vfs: fix dentry leak in simple_fill_super()

Miklos Szeredi (8):
      vfs: ignore error on forced remount
      hypfs: remove unnecessary nlink setting
      jfs: remove unnecessary nlink setting
      ocfs2: remove unnecessary nlink setting
      logfs: remove unnecessary nlink setting
      filesystems: add missing nlink wrappers
      filesystems: add set_nlink()
      vfs: protect i_nlink

Sage Weil (1):
      vfs: add d_prune dentry operation

 Documentation/filesystems/Locking |    1 +
 arch/s390/hypfs/inode.c           |    6 +---
 drivers/mtd/mtdchar.c             |    2 +-
 drivers/staging/pohmelfs/inode.c  |    2 +-
 fs/9p/vfs_inode.c                 |    4 +-
 fs/9p/vfs_inode_dotl.c            |    4 +-
 fs/adfs/inode.c                   |    2 +-
 fs/affs/amigaffs.c                |    4 +-
 fs/affs/inode.c                   |    8 +++---
 fs/affs/namei.c                   |    6 ++--
 fs/afs/fsclient.c                 |    2 +-
 fs/afs/inode.c                    |    4 +-
 fs/autofs4/inode.c                |    2 +-
 fs/befs/linuxvfs.c                |    2 +-
 fs/bfs/dir.c                      |    2 +-
 fs/bfs/inode.c                    |    2 +-
 fs/binfmt_misc.c                  |    2 +-
 fs/btrfs/delayed-inode.c          |    2 +-
 fs/btrfs/disk-io.c                |    2 +-
 fs/btrfs/inode.c                  |    4 +-
 fs/btrfs/tree-log.c               |    2 +-
 fs/ceph/caps.c                    |    2 +-
 fs/ceph/inode.c                   |    2 +-
 fs/cifs/inode.c                   |    6 ++--
 fs/cifs/link.c                    |    2 +-
 fs/coda/coda_linux.c              |    2 +-
 fs/coda/dir.c                     |    2 +-
 fs/dcache.c                       |   40 ++++++++++++++++++++++++++++++++----
 fs/devpts/inode.c                 |    4 +-
 fs/ecryptfs/inode.c               |   12 +++++-----
 fs/efs/inode.c                    |    2 +-
 fs/exofs/inode.c                  |    2 +-
 fs/ext2/ialloc.c                  |    2 +-
 fs/ext2/inode.c                   |    2 +-
 fs/ext3/ialloc.c                  |    2 +-
 fs/ext3/inode.c                   |    2 +-
 fs/ext3/namei.c                   |    6 ++--
 fs/ext4/ialloc.c                  |    2 +-
 fs/ext4/inode.c                   |    2 +-
 fs/ext4/migrate.c                 |    2 +-
 fs/ext4/namei.c                   |    8 +++---
 fs/fat/inode.c                    |    4 +-
 fs/fat/namei_msdos.c              |    2 +-
 fs/fat/namei_vfat.c               |    2 +-
 fs/freevxfs/vxfs_inode.c          |    2 +-
 fs/fuse/control.c                 |    2 +-
 fs/fuse/inode.c                   |    2 +-
 fs/gfs2/glops.c                   |    2 +-
 fs/hfs/dir.c                      |    4 +-
 fs/hfs/inode.c                    |    4 +-
 fs/hfsplus/dir.c                  |    4 +-
 fs/hfsplus/inode.c                |   10 ++++----
 fs/hostfs/hostfs_kern.c           |    2 +-
 fs/hpfs/dir.c                     |    2 +-
 fs/hpfs/inode.c                   |   10 ++++----
 fs/hpfs/namei.c                   |    8 +++---
 fs/hppfs/hppfs.c                  |    2 +-
 fs/hugetlbfs/inode.c              |    2 +-
 fs/inode.c                        |    2 +-
 fs/isofs/inode.c                  |    4 +-
 fs/isofs/rock.c                   |    4 +-
 fs/jffs2/dir.c                    |    6 ++--
 fs/jffs2/fs.c                     |    6 ++--
 fs/jfs/jfs_imap.c                 |    6 ++--
 fs/jfs/jfs_inode.c                |    2 +-
 fs/jfs/namei.c                    |   12 +++++-----
 fs/jfs/super.c                    |    1 -
 fs/libfs.c                        |    6 +++-
 fs/logfs/dir.c                    |    8 +++---
 fs/logfs/inode.c                  |    3 +-
 fs/logfs/readwrite.c              |    2 +-
 fs/minix/inode.c                  |    4 +-
 fs/namei.c                        |   18 ++++++++++++----
 fs/ncpfs/inode.c                  |    2 +-
 fs/nfs/inode.c                    |    6 ++--
 fs/nilfs2/inode.c                 |    4 +-
 fs/nilfs2/namei.c                 |    2 +-
 fs/ntfs/inode.c                   |    8 +++---
 fs/ocfs2/dir.c                    |    4 +-
 fs/ocfs2/dlmglue.c                |    2 +-
 fs/ocfs2/inode.c                  |    4 +-
 fs/ocfs2/namei.c                  |   18 +++++++---------
 fs/openpromfs/inode.c             |    4 +-
 fs/proc/base.c                    |   12 +++++-----
 fs/proc/generic.c                 |    2 +-
 fs/proc/inode.c                   |    2 +-
 fs/proc/proc_sysctl.c             |    2 +-
 fs/qnx4/inode.c                   |    2 +-
 fs/reiserfs/inode.c               |   10 ++++----
 fs/reiserfs/namei.c               |   16 +++++++-------
 fs/romfs/super.c                  |    2 +-
 fs/squashfs/inode.c               |   18 ++++++++--------
 fs/stack.c                        |    2 +-
 fs/stat.c                         |    5 ++-
 fs/super.c                        |    9 ++++++-
 fs/sysfs/inode.c                  |    2 +-
 fs/sysv/inode.c                   |    2 +-
 fs/ubifs/super.c                  |    2 +-
 fs/ubifs/xattr.c                  |    4 +-
 fs/udf/inode.c                    |    8 ++++--
 fs/udf/namei.c                    |   15 +++++--------
 fs/ufs/ialloc.c                   |    2 +-
 fs/ufs/inode.c                    |    4 +-
 fs/xfs/xfs_iops.c                 |    2 +-
 include/linux/dcache.h            |    8 ++++--
 include/linux/fs.h                |   31 +++++++++++++++++++++++++---
 include/linux/namei.h             |    1 +
 mm/shmem.c                        |    2 +-
 108 files changed, 301 insertions(+), 235 deletions(-)

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH V2 for 3.2] fs/direct-io.c: Calculate fs_count correctly in get_more_blocks.
  2011-11-02  7:36           ` Christoph Hellwig
@ 2011-11-03  3:21             ` Tao Ma
  0 siblings, 0 replies; 20+ messages in thread
From: Tao Ma @ 2011-11-03  3:21 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: linux-fsdevel, linux-kernel, Christoph Hellwig, Al Viro,
	Andrew Morton

On 11/02/2011 03:36 PM, Christoph Hellwig wrote:
> The patch looks good to me, but given that it neither fixes a bug
> nor a regression I'd probably call it 3.3 material at this point.
OK, so you will take it or I should ask Andrew to take it for now?

Thanks
Tao

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2011-11-03  3:21 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-10-28 13:30 interims VFS queue Christoph Hellwig
2011-10-28 18:43 ` Stephen Rothwell
2011-10-28 19:08   ` Linus Torvalds
2011-10-28 19:31     ` Stephen Rothwell
2011-10-28 19:13   ` Stephen Rothwell
2011-10-28 22:09 ` Andrew Morton
2011-10-29 10:58   ` Christoph Hellwig
2011-10-29 11:49     ` caching the request queue was " Andi Kleen
2011-11-02  2:47       ` Vivek Goyal
2011-10-30  7:36     ` Tao Ma
2011-10-31  7:24     ` [PATCH for 3.2] fs/direct-io.c: Calculate fs_count correctly in get_more_blocks Tao Ma
2011-10-31 18:12       ` Jeff Moyer
2011-11-01  3:31         ` Tao Ma
2011-11-02  2:26         ` [PATCH V2 " Tao Ma
2011-11-02  7:36           ` Christoph Hellwig
2011-11-03  3:21             ` Tao Ma
2011-10-29 13:48   ` interims VFS queue Aneesh Kumar K.V
2011-10-29 14:37     ` Christoph Hellwig
2011-10-30 15:47   ` Hans Verkuil
2011-11-02 13:28 ` interims VFS queue, part2 Christoph Hellwig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).