Date: Fri, 03 Aug 2007 07:25:04 -0500 From: Eric Anderson <anderson@freebsd.org> To: freebsd-fs@freebsd.org Subject: NFSv4 questions Message-ID: <46B31EA0.4010603@freebsd.org>
next in thread | raw e-mail | index | archive | help
Hi NFSv4 gurus,
While looking through the src, I noticed this:
in src/sys/nfs/nfsproto.h:
497 struct nfsv4_fattr {
498 u_int fa4_valid;
499 nfstype fa4_type;
500 off_t fa4_size;
501 uint64_t fa4_fsid_major;
502 uint64_t fa4_fsid_minor;
503 uint64_t fa4_fileid;
504 mode_t fa4_mode;
505 nlink_t fa4_nlink;
506 uid_t fa4_uid;
507 gid_t fa4_gid;
508 uint32_t fa4_rdev_major;
509 uint32_t fa4_rdev_minor;
510 struct timespec fa4_atime;
511 struct timespec fa4_btime;
512 struct timespec fa4_ctime;
513 struct timespec fa4_mtime;
514 uint64_t fa4_maxread;
515 uint64_t fa4_maxwrite;
516 uint64_t fa4_ffree;
517 uint64_t fa4_ftotal;
518 uint32_t fa4_maxname;
519 uint64_t fa4_savail;
520 uint64_t fa4_sfree;
521 uint64_t fa4_stotal;
522 uint64_t fa4_changeid;
523 uint32_t fa4_lease_time;
524 uint64_t fa4_maxfilesize;
525 };
526
It seems to me the fa4_mode, and fa4_nlink should actually be declared
as uint32_t, because the nlink_t and mode_t are actually 16bits.
See src/sys/sys/_types.h:
49 typedef __uint16_t __mode_t; /* permissions */
50 typedef int __nl_item;
51 typedef __uint16_t __nlink_t; /* link count */
See the NFSv4 rfc here:
http://www.ietf.org/rfc/rfc3530.txt
Can someone smack some sense into me please?
Eric
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?46B31EA0.4010603>
