From 57c7415290f56612f6a400d0669359d4e2951650 Mon Sep 17 00:00:00 2001 From: "J. Bruce Fields" Date: Mon, 15 Apr 2013 16:03:46 -0400 Subject: [PATCH] --- yaml --- r: 372209 b: refs/heads/master c: aa387d6ce15330e09037947147c5a5a2ba42a0e8 h: refs/heads/master i: 372207: 4990d1c8c36b9d4b85f4ff1e79f72ab160052923 v: v3 --- [refs] | 2 +- trunk/fs/nfsd/vfs.c | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 72fc826d14e7..dda2748f83b9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 030d794bf49855f5e2a9e8dfbfad34211d1eb08b +refs/heads/master: aa387d6ce15330e09037947147c5a5a2ba42a0e8 diff --git a/trunk/fs/nfsd/vfs.c b/trunk/fs/nfsd/vfs.c index 2b2e2396a869..84ce601d8063 100644 --- a/trunk/fs/nfsd/vfs.c +++ b/trunk/fs/nfsd/vfs.c @@ -1758,10 +1758,6 @@ nfsd_rename(struct svc_rqst *rqstp, struct svc_fh *ffhp, char *fname, int flen, tdentry = tfhp->fh_dentry; tdir = tdentry->d_inode; - err = (rqstp->rq_vers == 2) ? nfserr_acces : nfserr_xdev; - if (ffhp->fh_export != tfhp->fh_export) - goto out; - err = nfserr_perm; if (!flen || isdotent(fname, flen) || !tlen || isdotent(tname, tlen)) goto out; @@ -1802,6 +1798,8 @@ nfsd_rename(struct svc_rqst *rqstp, struct svc_fh *ffhp, char *fname, int flen, host_err = -EXDEV; if (ffhp->fh_export->ex_path.mnt != tfhp->fh_export->ex_path.mnt) goto out_dput_new; + if (ffhp->fh_export->ex_path.dentry != tfhp->fh_export->ex_path.dentry) + goto out_dput_new; host_err = nfsd_break_lease(odentry->d_inode); if (host_err)