All of lore.kernel.org
 help / color / mirror / Atom feed
From: Trond Myklebust <trond.myklebust@fys.uio.no>
To: Ian Kent <raven@themaw.net>
Cc: David Howells <dhowells@redhat.com>,
	Andrew Morton <akpm@osdl.org>,
	torvalds@osdl.org, steved@redhat.com,
	linux-fsdevel@vger.kernel.org, linux-cachefs@redhat.com,
	nfsv4@linux-nfs.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/7] Permit filesystem local caching and NFS superblock sharing [try #13]
Date: Tue, 05 Sep 2006 00:57:01 -0400	[thread overview]
Message-ID: <1157432221.32412.41.camel@localhost> (raw)
In-Reply-To: <1157429219.3915.11.camel@raven.themaw.net>

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

On Tue, 2006-09-05 at 12:06 +0800, Ian Kent wrote:

> > One way to fix this is to simply not hash the dentry when we're doing
> > the O_EXCL intent optimisation, but rather to only hash it _after_ we've
> > successfully created the file on the server. Something like the attached
> > patch ought to do it.
> 
> No.
> 
> This patch simply marks the dentry negative and returns ENOMEM from the
> lookup which, as would be expected, results in this error being returned
> to userspace.

Oops. You are right. I forgot to set res=NULL...



[-- Attachment #2: linux-2.6.18-063-fix_exclusive_create.dif --]
[-- Type: message/rfc822, Size: 1238 bytes --]

From: Trond Myklebust <Trond.Myklebust@netapp.com>
Subject: No Subject
Date: 
Message-ID: <1157432220.32412.40.camel@localhost>

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
---

 fs/nfs/dir.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
index 51328ae..3419c2d 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -904,9 +904,15 @@ static struct dentry *nfs_lookup(struct 
 
 	lock_kernel();
 
-	/* If we're doing an exclusive create, optimize away the lookup */
-	if (nfs_is_exclusive_create(dir, nd))
-		goto no_entry;
+	/*
+	 * If we're doing an exclusive create, optimize away the lookup
+	 * but don't hash the dentry.
+	 */
+	if (nfs_is_exclusive_create(dir, nd)) {
+		d_instantiate(dentry, NULL);
+		res = NULL;
+		goto out_unlock;
+	}
 
 	error = NFS_PROTO(dir)->lookup(dir, &dentry->d_name, &fhandle, &fattr);
 	if (error == -ENOENT)
@@ -1161,6 +1167,8 @@ int nfs_instantiate(struct dentry *dentr
 	if (IS_ERR(inode))
 		return error;
 	d_instantiate(dentry, inode);
+	if (d_unhashed(dentry))
+		d_rehash(dentry);
 	return 0;
 }
 

  reply	other threads:[~2006-09-05  4:57 UTC|newest]

Thread overview: 128+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-30 19:31 [PATCH 0/7] Permit filesystem local caching and NFS superblock sharing [try #13] David Howells
2006-08-30 19:31 ` David Howells
2006-08-30 19:31 ` [PATCH 1/7] FS-Cache: Provide a filesystem-specific sync'able page bit " David Howells
2006-08-30 19:31 ` [PATCH 2/7] FS-Cache: Generic filesystem caching facility " David Howells
2006-08-30 19:32 ` [PATCH 3/7] FS-Cache: Release page->private after failed readahead " David Howells
2006-08-30 19:32 ` [PATCH 4/7] FS-Cache: Make kAFS use FS-Cache " David Howells
2006-08-30 19:32 ` [PATCH 5/7] NFS: Use local caching " David Howells
2006-08-30 19:32 ` [PATCH 6/7] FS-Cache: CacheFiles: ia64: missing copy_page export " David Howells
2006-08-30 19:32 ` [PATCH 7/7] FS-Cache: CacheFiles: A cache that backs onto a mounted filesystem " David Howells
2006-08-30 19:52 ` [PATCH 0/7] Permit filesystem local caching and NFS superblock sharing " Andrew Morton
2006-08-30 19:52   ` Andrew Morton
2006-08-30 20:37   ` David Howells
2006-08-30 20:37     ` David Howells
2006-08-30 20:55     ` Andrew Morton
2006-08-31  9:58       ` David Howells
2006-08-31  9:58         ` David Howells
2006-08-31 17:21         ` Andrew Morton
2006-08-31 17:21           ` Andrew Morton
2006-08-31 17:26           ` Trond Myklebust
2006-08-31 17:26             ` Trond Myklebust
2006-08-31 17:42           ` David Howells
2006-08-31 17:42             ` David Howells
2006-08-31 18:04             ` Andrew Morton
2006-08-31 18:04               ` Andrew Morton
2006-09-01 13:08           ` David Howells
2006-09-01 13:08             ` David Howells
2006-09-01 16:34             ` Andrew Morton
2006-09-01 16:34               ` Andrew Morton
2006-09-01 17:00               ` Trond Myklebust
2006-09-01 17:00                 ` Trond Myklebust
2006-09-02  2:50                 ` Andrew Morton
2006-09-02  2:50                   ` Andrew Morton
2006-09-02  4:11                   ` Ian Kent
2006-09-02  4:11                     ` Ian Kent
2006-09-02  5:58                     ` Andrew Morton
2006-09-02  5:58                       ` Andrew Morton
2006-09-03  6:21                       ` Ian Kent
2006-09-03  6:21                         ` Ian Kent
2006-09-03  6:30                         ` Andrew Morton
2006-09-03  6:30                           ` Andrew Morton
2006-09-03  6:43                           ` Ian Kent
2006-09-03  6:43                             ` Ian Kent
2006-09-03 16:58                             ` Andrew Morton
2006-09-03 16:58                               ` Andrew Morton
2006-09-04  2:23                               ` Ian Kent
2006-09-04  2:23                                 ` Ian Kent
2006-09-04  5:40                               ` Ian Kent
2006-09-02  4:49                   ` Ian Kent
2006-09-02  4:49                     ` Ian Kent
2006-09-04 11:52                   ` David Howells
2006-09-04 11:52                     ` David Howells
2006-09-04 11:52                   ` David Howells
2006-09-04 11:52                     ` David Howells
2006-09-04 13:24                     ` Ian Kent
2006-09-04 13:24                       ` Ian Kent
2006-09-04 13:46                       ` David Howells
2006-09-04 13:46                         ` David Howells
2006-09-04 15:00                         ` Ian Kent
2006-09-04 15:00                           ` Ian Kent
2006-09-05  4:11                         ` Ian Kent
2006-09-05  4:11                           ` Ian Kent
2006-09-05  4:17                           ` Trond Myklebust
2006-09-05  4:17                             ` Trond Myklebust
2006-09-05  1:57                       ` Trond Myklebust
2006-09-05  1:57                         ` Trond Myklebust
2006-09-05  2:55                         ` Ian Kent
2006-09-05  2:55                           ` Ian Kent
2006-09-05  3:50                           ` Trond Myklebust
2006-09-05  3:50                             ` Trond Myklebust
2006-09-05  4:03                             ` Ian Kent
2006-09-05  4:03                               ` Ian Kent
2006-09-05  4:53                               ` Trond Myklebust
2006-09-05  4:53                                 ` Trond Myklebust
2006-09-05  6:06                                 ` Ian Kent
2006-09-05  6:06                                   ` Ian Kent
2006-09-05  7:01                                   ` Ian Kent
2006-09-05  7:01                                     ` Ian Kent
2006-09-05 12:52                                     ` Trond Myklebust
2006-09-06  4:54                                       ` Ian Kent
2006-09-06  4:54                                         ` Ian Kent
2006-09-05  9:40                                   ` David Howells
2006-09-05  9:40                                     ` David Howells
2006-09-05 10:20                                     ` Ian Kent
2006-09-05 10:20                                       ` Ian Kent
2006-09-05 10:37                                       ` David Howells
2006-09-05 10:37                                         ` David Howells
2006-09-05 12:20                                         ` Ian Kent
2006-09-05 12:20                                           ` Ian Kent
2006-09-05 13:38                                           ` David Howells
2006-09-05 13:38                                             ` David Howells
2006-09-06  4:58                                             ` Ian Kent
2006-09-06  4:58                                               ` Ian Kent
2006-09-06  9:51                                               ` David Howells
2006-09-06  9:51                                                 ` David Howells
2006-09-06 12:46                                                 ` Trond Myklebust
2006-09-06 12:46                                                   ` Trond Myklebust
2006-09-06 13:24                                                   ` David Howells
2006-09-06 13:24                                                     ` David Howells
2006-09-07  5:30                                                     ` Ian Kent
2006-09-07  5:30                                                       ` Ian Kent
2006-09-07  6:17                                                       ` Trond Myklebust
2006-09-07  6:17                                                         ` Trond Myklebust
2006-09-07  7:40                                                         ` Ian Kent
2006-09-05  9:48                           ` David Howells
2006-09-05  9:48                             ` David Howells
2006-09-05 10:14                             ` Ian Kent
2006-09-05  9:57                         ` David Howells
2006-09-05  9:57                           ` David Howells
2006-09-05 12:47                           ` Trond Myklebust
2006-09-05 12:53                             ` Trond Myklebust
2006-09-05 12:53                               ` Trond Myklebust
2006-09-05 13:40                               ` David Howells
2006-09-06 10:27                             ` Ian Kent
2006-09-06 10:27                               ` Ian Kent
2006-09-05  2:23                     ` Trond Myklebust
2006-09-05  3:01                       ` Ian Kent
2006-09-05  3:01                         ` Ian Kent
2006-09-05  4:05                         ` Trond Myklebust
2006-09-05  4:05                           ` Trond Myklebust
2006-09-05  4:06                       ` Ian Kent
2006-09-05  4:06                         ` Ian Kent
2006-09-05  4:57                         ` Trond Myklebust [this message]
2006-09-05  6:45                           ` Ian Kent
2006-09-05  6:45                             ` Ian Kent
2006-09-05  7:07                             ` Ian Kent
2006-09-05  7:07                               ` Ian Kent
2006-09-04 18:20               ` David Howells
2006-09-04 18:20                 ` David Howells

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1157432221.32412.41.camel@localhost \
    --to=trond.myklebust@fys.uio.no \
    --cc=akpm@osdl.org \
    --cc=dhowells@redhat.com \
    --cc=linux-cachefs@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nfsv4@linux-nfs.org \
    --cc=raven@themaw.net \
    --cc=steved@redhat.com \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.