diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2005-10-18 14:20:18 -0700 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2005-10-18 14:20:18 -0700 |
commit | 6f926b5ba75c568296ec227e7d782db4ddbdca5c (patch) | |
tree | 6c9aad3139ae4e54210ab5ff37446c357c54b521 /fs/nfs/dir.c | |
parent | 02a913a73b52071e93f4b76db3e86138d19efffd (diff) | |
download | linux-6f926b5ba75c568296ec227e7d782db4ddbdca5c.tar.gz linux-6f926b5ba75c568296ec227e7d782db4ddbdca5c.tar.bz2 linux-6f926b5ba75c568296ec227e7d782db4ddbdca5c.zip |
[NFS]: Check that the server returns a valid regular file to our OPEN request
Since it appears that some servers don't...
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/dir.c')
-rw-r--r-- | fs/nfs/dir.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index a6e251f21fd8..ac331d2d4c4a 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -957,10 +957,12 @@ static struct dentry *nfs_atomic_lookup(struct inode *dir, struct dentry *dentry res = NULL; goto out; /* This turned out not to be a regular file */ + case -EISDIR: + case -ENOTDIR: + goto no_open; case -ELOOP: if (!(nd->intent.open.flags & O_NOFOLLOW)) goto no_open; - /* case -EISDIR: */ /* case -EINVAL: */ default: goto out; |