From owner-svn-src-head@FreeBSD.ORG Thu Mar 21 22:44:36 2013 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 39977B33; Thu, 21 Mar 2013 22:44:36 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 29F01FA1; Thu, 21 Mar 2013 22:44:36 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2LMianT058230; Thu, 21 Mar 2013 22:44:36 GMT (envelope-from pjd@svn.freebsd.org) Received: (from pjd@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2LMiYHV058219; Thu, 21 Mar 2013 22:44:34 GMT (envelope-from pjd@svn.freebsd.org) Message-Id: <201303212244.r2LMiYHV058219@svn.freebsd.org> From: Pawel Jakub Dawidek Date: Thu, 21 Mar 2013 22:44:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r248597 - in head: bin/chflags bin/mv lib/libc/sys sys/compat/freebsd32 sys/fs/tmpfs sys/kern sys/sys tools/regression/pjdfstest X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Mar 2013 22:44:36 -0000 Author: pjd Date: Thu Mar 21 22:44:33 2013 New Revision: 248597 URL: http://svnweb.freebsd.org/changeset/base/248597 Log: - Make 'flags' argument to chflags(2), fchflags(2) and lchflags(2) of type u_long. Before this change it was of type int for syscalls, but prototypes in sys/stat.h and documentation for chflags(2) and fchflags(2) (but not for lchflags(2)) stated that it was u_long. Now some related functions use u_long type for flags (strtofflags(3), fflagstostr(3)). - Make path argument of type 'const char *' for consistency. Discussed on: arch Sponsored by: The FreeBSD Foundation Modified: head/bin/chflags/chflags.c head/bin/mv/mv.c head/lib/libc/sys/chflags.2 head/sys/compat/freebsd32/syscalls.master head/sys/fs/tmpfs/tmpfs.h head/sys/fs/tmpfs/tmpfs_subr.c head/sys/kern/syscalls.master head/sys/kern/vfs_syscalls.c head/sys/sys/stat.h head/tools/regression/pjdfstest/pjdfstest.c Modified: head/bin/chflags/chflags.c ============================================================================== --- head/bin/chflags/chflags.c Thu Mar 21 22:36:43 2013 (r248596) +++ head/bin/chflags/chflags.c Thu Mar 21 22:44:33 2013 (r248597) @@ -117,11 +117,7 @@ main(int argc, char *argv[]) } else fts_options = hflag ? FTS_PHYSICAL : FTS_LOGICAL; - /* XXX: Why don't chflags and lchflags have compatible prototypes? */ - if (hflag) - change_flags = (int (*)(const char *, unsigned long))lchflags; - else - change_flags = chflags; + change_flags = hflag ? lchflags : chflags; flags = *argv; if (*flags >= '0' && *flags <= '7') { Modified: head/bin/mv/mv.c ============================================================================== --- head/bin/mv/mv.c Thu Mar 21 22:36:43 2013 (r248596) +++ head/bin/mv/mv.c Thu Mar 21 22:44:33 2013 (r248597) @@ -337,7 +337,7 @@ err: if (unlink(to)) * on a file that we copied, i.e., that we didn't create.) */ errno = 0; - if (fchflags(to_fd, (u_long)sbp->st_flags)) + if (fchflags(to_fd, sbp->st_flags)) if (errno != EOPNOTSUPP || sbp->st_flags != 0) warn("%s: set flags (was: 0%07o)", to, sbp->st_flags); Modified: head/lib/libc/sys/chflags.2 ============================================================================== --- head/lib/libc/sys/chflags.2 Thu Mar 21 22:36:43 2013 (r248596) +++ head/lib/libc/sys/chflags.2 Thu Mar 21 22:44:33 2013 (r248597) @@ -42,11 +42,11 @@ .In sys/stat.h .In unistd.h .Ft int -.Fn chflags "const char *path" "u_long flags" +.Fn chflags "const char *path" "unsigned long flags" .Ft int -.Fn lchflags "const char *path" "int flags" +.Fn lchflags "const char *path" "unsigned long flags" .Ft int -.Fn fchflags "int fd" "u_long flags" +.Fn fchflags "int fd" "unsigned long flags" .Sh DESCRIPTION The file whose name is given by Modified: head/sys/compat/freebsd32/syscalls.master ============================================================================== --- head/sys/compat/freebsd32/syscalls.master Thu Mar 21 22:36:43 2013 (r248596) +++ head/sys/compat/freebsd32/syscalls.master Thu Mar 21 22:44:33 2013 (r248597) @@ -114,8 +114,8 @@ 32 AUE_GETSOCKNAME NOPROTO { int getsockname(int fdes, caddr_t asa, \ int *alen); } 33 AUE_ACCESS NOPROTO { int access(char *path, int amode); } -34 AUE_CHFLAGS NOPROTO { int chflags(char *path, int flags); } -35 AUE_FCHFLAGS NOPROTO { int fchflags(int fd, int flags); } +34 AUE_CHFLAGS NOPROTO { int chflags(const char *path, u_long flags); } +35 AUE_FCHFLAGS NOPROTO { int fchflags(int fd, u_long flags); } 36 AUE_SYNC NOPROTO { int sync(void); } 37 AUE_KILL NOPROTO { int kill(int pid, int signum); } 38 AUE_STAT COMPAT { int freebsd32_stat(char *path, \ @@ -693,7 +693,8 @@ 389 AUE_NULL UNIMPL __mac_set_file 390 AUE_NULL NOPROTO { int kenv(int what, const char *name, \ char *value, int len); } -391 AUE_LCHFLAGS NOPROTO { int lchflags(const char *path, int flags); } +391 AUE_LCHFLAGS NOPROTO { int lchflags(const char *path, \ + u_long flags); } 392 AUE_NULL NOPROTO { int uuidgen(struct uuid *store, \ int count); } 393 AUE_SENDFILE STD { int freebsd32_sendfile(int fd, int s, \ Modified: head/sys/fs/tmpfs/tmpfs.h ============================================================================== --- head/sys/fs/tmpfs/tmpfs.h Thu Mar 21 22:36:43 2013 (r248596) +++ head/sys/fs/tmpfs/tmpfs.h Thu Mar 21 22:44:33 2013 (r248597) @@ -183,7 +183,7 @@ struct tmpfs_node { uid_t tn_uid; gid_t tn_gid; mode_t tn_mode; - int tn_flags; + u_long tn_flags; nlink_t tn_links; struct timespec tn_atime; struct timespec tn_mtime; @@ -418,7 +418,7 @@ int tmpfs_dir_getdents(struct tmpfs_node int tmpfs_dir_whiteout_add(struct vnode *, struct componentname *); void tmpfs_dir_whiteout_remove(struct vnode *, struct componentname *); int tmpfs_reg_resize(struct vnode *, off_t, boolean_t); -int tmpfs_chflags(struct vnode *, int, struct ucred *, struct thread *); +int tmpfs_chflags(struct vnode *, u_long, struct ucred *, struct thread *); int tmpfs_chmod(struct vnode *, mode_t, struct ucred *, struct thread *); int tmpfs_chown(struct vnode *, uid_t, gid_t, struct ucred *, struct thread *); Modified: head/sys/fs/tmpfs/tmpfs_subr.c ============================================================================== --- head/sys/fs/tmpfs/tmpfs_subr.c Thu Mar 21 22:36:43 2013 (r248596) +++ head/sys/fs/tmpfs/tmpfs_subr.c Thu Mar 21 22:44:33 2013 (r248597) @@ -1355,7 +1355,8 @@ retry: * The vnode must be locked on entry and remain locked on exit. */ int -tmpfs_chflags(struct vnode *vp, int flags, struct ucred *cred, struct thread *p) +tmpfs_chflags(struct vnode *vp, u_long flags, struct ucred *cred, + struct thread *p) { int error; struct tmpfs_node *node; Modified: head/sys/kern/syscalls.master ============================================================================== --- head/sys/kern/syscalls.master Thu Mar 21 22:36:43 2013 (r248596) +++ head/sys/kern/syscalls.master Thu Mar 21 22:44:33 2013 (r248597) @@ -115,8 +115,8 @@ struct sockaddr * __restrict asa, \ __socklen_t * __restrict alen); } 33 AUE_ACCESS STD { int access(char *path, int amode); } -34 AUE_CHFLAGS STD { int chflags(char *path, int flags); } -35 AUE_FCHFLAGS STD { int fchflags(int fd, int flags); } +34 AUE_CHFLAGS STD { int chflags(const char *path, u_long flags); } +35 AUE_FCHFLAGS STD { int fchflags(int fd, u_long flags); } 36 AUE_SYNC STD { int sync(void); } 37 AUE_KILL STD { int kill(int pid, int signum); } 38 AUE_STAT COMPAT { int stat(char *path, struct ostat *ub); } @@ -696,7 +696,8 @@ struct mac *mac_p); } 390 AUE_NULL STD { int kenv(int what, const char *name, \ char *value, int len); } -391 AUE_LCHFLAGS STD { int lchflags(const char *path, int flags); } +391 AUE_LCHFLAGS STD { int lchflags(const char *path, \ + u_long flags); } 392 AUE_NULL STD { int uuidgen(struct uuid *store, \ int count); } 393 AUE_SENDFILE STD { int sendfile(int fd, int s, off_t offset, \ Modified: head/sys/kern/vfs_syscalls.c ============================================================================== --- head/sys/kern/vfs_syscalls.c Thu Mar 21 22:36:43 2013 (r248596) +++ head/sys/kern/vfs_syscalls.c Thu Mar 21 22:44:33 2013 (r248597) @@ -101,7 +101,7 @@ SDT_PROBE_ARGTYPE(vfs, , stat, reg, 1, " static int chroot_refuse_vdir_fds(struct filedesc *fdp); static int getutimes(const struct timeval *, enum uio_seg, struct timespec *); -static int setfflags(struct thread *td, struct vnode *, int); +static int setfflags(struct thread *td, struct vnode *, u_long); static int setutimes(struct thread *td, struct vnode *, const struct timespec *, int, int); static int vn_access(struct vnode *vp, int user_flags, struct ucred *cred, @@ -2615,7 +2615,7 @@ static int setfflags(td, vp, flags) struct thread *td; struct vnode *vp; - int flags; + u_long flags; { int error; struct mount *mp; @@ -2657,16 +2657,16 @@ setfflags(td, vp, flags) */ #ifndef _SYS_SYSPROTO_H_ struct chflags_args { - char *path; - int flags; + const char *path; + u_long flags; }; #endif int sys_chflags(td, uap) struct thread *td; register struct chflags_args /* { - char *path; - int flags; + const char *path; + u_long flags; } */ *uap; { int error; @@ -2689,8 +2689,8 @@ int sys_lchflags(td, uap) struct thread *td; register struct lchflags_args /* { - char *path; - int flags; + const char *path; + u_long flags; } */ *uap; { int error; @@ -2713,7 +2713,7 @@ sys_lchflags(td, uap) #ifndef _SYS_SYSPROTO_H_ struct fchflags_args { int fd; - int flags; + u_long flags; }; #endif int @@ -2721,7 +2721,7 @@ sys_fchflags(td, uap) struct thread *td; register struct fchflags_args /* { int fd; - int flags; + u_long flags; } */ *uap; { struct file *fp; Modified: head/sys/sys/stat.h ============================================================================== --- head/sys/sys/stat.h Thu Mar 21 22:36:43 2013 (r248596) +++ head/sys/sys/stat.h Thu Mar 21 22:44:33 2013 (r248597) @@ -306,7 +306,7 @@ int fchmodat(int, const char *, mode_t, #endif int fstat(int, struct stat *); #if __BSD_VISIBLE -int lchflags(const char *, int); +int lchflags(const char *, unsigned long); int lchmod(const char *, mode_t); #endif #if __POSIX_VISIBLE >= 200112 Modified: head/tools/regression/pjdfstest/pjdfstest.c ============================================================================== --- head/tools/regression/pjdfstest/pjdfstest.c Thu Mar 21 22:36:43 2013 (r248596) +++ head/tools/regression/pjdfstest/pjdfstest.c Thu Mar 21 22:44:33 2013 (r248597) @@ -831,7 +831,8 @@ call_syscall(struct syscall_desc *scall, #endif #ifdef HAS_LCHFLAGS case ACTION_LCHFLAGS: - rval = lchflags(STR(0), (int)str2flags(chflags_flags, STR(1))); + rval = lchflags(STR(0), + (unsigned long)str2flags(chflags_flags, STR(1))); break; #endif case ACTION_TRUNCATE: