patch-2.4.2 linux/fs/nfsd/nfsproc.c
Next file: linux/fs/nfsd/nfssvc.c
Previous file: linux/fs/nfsd/nfsfh.c
Back to the patch index
Back to the overall index
- Lines: 31
- Date:
Fri Feb 9 11:29:44 2001
- Orig file:
v2.4.1/linux/fs/nfsd/nfsproc.c
- Orig date:
Mon Jun 26 11:44:15 2000
diff -u --recursive --new-file v2.4.1/linux/fs/nfsd/nfsproc.c linux/fs/nfsd/nfsproc.c
@@ -18,7 +18,7 @@
#include <linux/in.h>
#include <linux/version.h>
#include <linux/unistd.h>
-#include <linux/malloc.h>
+#include <linux/slab.h>
#include <linux/sunrpc/svc.h>
#include <linux/nfsd/nfsd.h>
@@ -252,8 +252,19 @@
if (attr->ia_valid & ATTR_MODE) {
type = attr->ia_mode & S_IFMT;
mode = attr->ia_mode & ~S_IFMT;
- if (!type) /* HP weirdness */
- type = S_IFREG;
+ if (!type) {
+ /* no type, so if target exists, assume same as that,
+ * else assume a file */
+ if (inode) {
+ type = inode->i_mode & S_IFMT;
+ if (type == S_IFCHR || type == S_IFBLK) {
+ /* reserve rdev for later checking */
+ attr->ia_size = inode->i_rdev;
+ attr->ia_valid |= ATTR_SIZE;
+ }
+ } else
+ type = S_IFREG;
+ }
} else if (inode) {
type = inode->i_mode & S_IFMT;
mode = inode->i_mode & ~S_IFMT;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)