From 207944053083fb7ec5e397efcd84421e2028ca3b Mon Sep 17 00:00:00 2001 From: "M. Mohan Kumar" Date: Tue, 5 Feb 2013 14:25:05 +0530 Subject: [PATCH] --- yaml --- r: 352883 b: refs/heads/master c: b6f4bee02f682d1c86ece297871b78ae01afaaf4 h: refs/heads/master i: 352881: eaea045d22ea19d99098a21faa9efbac9a28aaee 352879: e714c6c76635cc62ee189938b4a41868153a12f8 v: v3 --- [refs] | 2 +- trunk/fs/9p/vfs_inode_dotl.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index c1c754bf9151..596011136e59 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 03f0e022736d123bc42907a958535f4f10d0c4c3 +refs/heads/master: b6f4bee02f682d1c86ece297871b78ae01afaaf4 diff --git a/trunk/fs/9p/vfs_inode_dotl.c b/trunk/fs/9p/vfs_inode_dotl.c index edd41d918e6c..8d24ad66dfb8 100644 --- a/trunk/fs/9p/vfs_inode_dotl.c +++ b/trunk/fs/9p/vfs_inode_dotl.c @@ -267,8 +267,14 @@ v9fs_vfs_atomic_open_dotl(struct inode *dir, struct dentry *dentry, } /* Only creates */ - if (!(flags & O_CREAT) || dentry->d_inode) - return finish_no_open(file, res); + if (!(flags & O_CREAT)) + return finish_no_open(file, res); + else if (dentry->d_inode) { + if ((flags & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL)) + return -EEXIST; + else + return finish_no_open(file, res); + } v9ses = v9fs_inode2v9ses(dir);