2002-08-13 23:08:03

by Kendrick M. Smith

[permalink] [raw]
Subject: patch 31/38: SERVER: allow type==0 in nfsd_unlink()


If nfsd_unlink() is called with @type equal to 0, then let it do the
right thing regardless of the type of the file being unlinked. This
is needed for the NFSv4 REMOVE operation, which works for any type of
file, even directories.

--- old/fs/nfsd/vfs.c Tue Jul 30 23:28:23 2002
+++ new/fs/nfsd/vfs.c Tue Jul 30 23:59:38 2002
@@ -1329,6 +1329,9 @@ nfsd_unlink(struct svc_rqst *rqstp, stru
goto out;
}

+ if (!type)
+ type = rdentry->d_inode->i_mode & S_IFMT;
+
if (type != S_IFDIR) { /* It's UNLINK */
#ifdef MSNFS
if ((fhp->fh_export->ex_flags & NFSEXP_MSNFS) &&