From owner-svn-soc-all@FreeBSD.ORG Mon Jul 25 06:53:27 2011 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 832111065674 for ; Mon, 25 Jul 2011 06:53:25 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Mon, 25 Jul 2011 06:53:25 +0000 Date: Mon, 25 Jul 2011 06:53:25 +0000 From: gk@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20110725065325.832111065674@hub.freebsd.org> Cc: Subject: socsvn commit: r224525 - in soc2011/gk/ino64-head: lib/libc/gen lib/libc/include lib/libc/sys sys/compat/freebsd32 sys/compat/linux sys/compat/svr4 sys/fs/nfs sys/fs/nfsserver sys/fs/nullfs sys/fs/... X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jul 2011 06:53:27 -0000 Author: gk Date: Mon Jul 25 06:53:25 2011 New Revision: 224525 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=224525 Log: Increase MNAMELEN to 1024, add compatibility shims Malloc struct statfs in kernel, it became too big to be placed on stack Leave MFSNAMELEN untouched, otherwise compatibility shims for several sysctls have to be implemented. Added: soc2011/gk/ino64-head/lib/libc/gen/getmntinfo-compat8.c - copied, changed from r224306, soc2011/gk/ino64-head/lib/libc/gen/dirent-compat.h Modified: soc2011/gk/ino64-head/lib/libc/gen/Makefile.inc soc2011/gk/ino64-head/lib/libc/gen/Symbol.map soc2011/gk/ino64-head/lib/libc/gen/dirent-compat.h soc2011/gk/ino64-head/lib/libc/gen/fts-compat.c soc2011/gk/ino64-head/lib/libc/gen/fts-compat8.c soc2011/gk/ino64-head/lib/libc/include/compat.h soc2011/gk/ino64-head/lib/libc/sys/Symbol.map soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32.h soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_misc.c soc2011/gk/ino64-head/sys/compat/freebsd32/syscalls.master soc2011/gk/ino64-head/sys/compat/linux/linux_stats.c soc2011/gk/ino64-head/sys/compat/svr4/svr4_misc.c soc2011/gk/ino64-head/sys/fs/nfs/nfs_commonsubs.c soc2011/gk/ino64-head/sys/fs/nfsserver/nfs_nfsdserv.c soc2011/gk/ino64-head/sys/fs/nullfs/null_vfsops.c soc2011/gk/ino64-head/sys/fs/unionfs/union_vfsops.c soc2011/gk/ino64-head/sys/i386/ibcs2/ibcs2_stat.c soc2011/gk/ino64-head/sys/kern/kern_acct.c soc2011/gk/ino64-head/sys/kern/syscalls.master soc2011/gk/ino64-head/sys/kern/vfs_default.c soc2011/gk/ino64-head/sys/kern/vfs_syscalls.c soc2011/gk/ino64-head/sys/nfsserver/nfs_serv.c soc2011/gk/ino64-head/sys/sys/mount.h Modified: soc2011/gk/ino64-head/lib/libc/gen/Makefile.inc ============================================================================== --- soc2011/gk/ino64-head/lib/libc/gen/Makefile.inc Mon Jul 25 01:42:51 2011 (r224524) +++ soc2011/gk/ino64-head/lib/libc/gen/Makefile.inc Mon Jul 25 06:53:25 2011 (r224525) @@ -15,7 +15,8 @@ fpclassify.c frexp.c fstab.c ftok.c fts.c fts-compat.c fts-compat8.c \ ftw.c ftw-compat8.c getbootfile.c getbsize.c \ getcap.c getcwd.c getdomainname.c getgrent.c getgrouplist.c \ - gethostname.c getloadavg.c getlogin.c getmntinfo.c getnetgrent.c \ + gethostname.c getloadavg.c getlogin.c \ + getmntinfo.c getmntinfo-compat8.c getnetgrent.c \ getosreldate.c getpagesize.c getpagesizes.c \ getpeereid.c getprogname.c getpwent.c getttyent.c \ getusershell.c getutxent.c getvfsbyname.c glob.c glob-compat8.c \ Modified: soc2011/gk/ino64-head/lib/libc/gen/Symbol.map ============================================================================== --- soc2011/gk/ino64-head/lib/libc/gen/Symbol.map Mon Jul 25 01:42:51 2011 (r224524) +++ soc2011/gk/ino64-head/lib/libc/gen/Symbol.map Mon Jul 25 06:53:25 2011 (r224525) @@ -166,7 +166,6 @@ getloadavg; getlogin; getlogin_r; - getmntinfo; setnetgrent; getnetgrent; endnetgrent; @@ -355,6 +354,7 @@ fts_set; fts_set_clientptr; ftw; + getmntinfo; getpagesizes; getutxent; getutxid; Modified: soc2011/gk/ino64-head/lib/libc/gen/dirent-compat.h ============================================================================== --- soc2011/gk/ino64-head/lib/libc/gen/dirent-compat.h Mon Jul 25 01:42:51 2011 (r224524) +++ soc2011/gk/ino64-head/lib/libc/gen/dirent-compat.h Mon Jul 25 06:53:25 2011 (r224525) @@ -30,11 +30,15 @@ #ifndef _DIRENT_COMPAT_H_ #define _DIRENT_COMPAT_H_ +#include + #define FREEBSD8_DIRSIZ(dp) \ (sizeof(struct freebsd8_dirent) - sizeof((dp)->d_name) + \ (((dp)->d_namlen + 1 + 3) &~ 3)) +struct freebsd8_dirent; struct freebsd8_stat; +struct freebsd8_statfs; struct freebsd8_dirent *freebsd8_readdir(DIR *); int freebsd8_readdir_r(DIR *, struct freebsd8_dirent *, @@ -43,4 +47,8 @@ int freebsd8_lstat(const char *, struct freebsd8_stat *); int freebsd8_fstat(int, struct freebsd8_stat *); +int freebsd8_statfs(const char *, struct freebsd8_statfs *); +int freebsd8_getfsstat(struct freebsd8_statfs *, long, int); +int freebsd8_getmntinfo(struct freebsd8_statfs **, int); + #endif /* _DIRENT_COMPAT_H_ */ Modified: soc2011/gk/ino64-head/lib/libc/gen/fts-compat.c ============================================================================== --- soc2011/gk/ino64-head/lib/libc/gen/fts-compat.c Mon Jul 25 01:42:51 2011 (r224524) +++ soc2011/gk/ino64-head/lib/libc/gen/fts-compat.c Mon Jul 25 06:53:25 2011 (r224525) @@ -97,7 +97,7 @@ */ struct _fts_private { FTS ftsp_fts; - struct statfs ftsp_statfs; + struct freebsd8_statfs ftsp_statfs; dev_t ftsp_dev; int ftsp_linksreliable; }; @@ -1219,7 +1219,7 @@ * avoidance. */ if (priv->ftsp_dev != ent->fts_dev) { - if (statfs(ent->fts_path, &priv->ftsp_statfs) != -1) { + if (freebsd8_statfs(ent->fts_path, &priv->ftsp_statfs) != -1) { priv->ftsp_dev = ent->fts_dev; priv->ftsp_linksreliable = 0; for (cpp = ufslike_filesystems; *cpp; cpp++) { Modified: soc2011/gk/ino64-head/lib/libc/gen/fts-compat8.c ============================================================================== --- soc2011/gk/ino64-head/lib/libc/gen/fts-compat8.c Mon Jul 25 01:42:51 2011 (r224524) +++ soc2011/gk/ino64-head/lib/libc/gen/fts-compat8.c Mon Jul 25 06:53:25 2011 (r224525) @@ -85,7 +85,7 @@ */ struct _fts_private { FTS ftsp_fts; - struct statfs ftsp_statfs; + struct freebsd8_statfs ftsp_statfs; dev_t ftsp_dev; int ftsp_linksreliable; }; @@ -1183,7 +1183,7 @@ * avoidance. */ if (priv->ftsp_dev != ent->fts_dev) { - if (statfs(ent->fts_path, &priv->ftsp_statfs) != -1) { + if (freebsd8_statfs(ent->fts_path, &priv->ftsp_statfs) != -1) { priv->ftsp_dev = ent->fts_dev; priv->ftsp_linksreliable = 0; for (cpp = ufslike_filesystems; *cpp; cpp++) { Copied and modified: soc2011/gk/ino64-head/lib/libc/gen/getmntinfo-compat8.c (from r224306, soc2011/gk/ino64-head/lib/libc/gen/dirent-compat.h) ============================================================================== --- soc2011/gk/ino64-head/lib/libc/gen/dirent-compat.h Sat Jul 16 10:43:25 2011 (r224306, copy source) +++ soc2011/gk/ino64-head/lib/libc/gen/getmntinfo-compat8.c Mon Jul 25 06:53:25 2011 (r224525) @@ -1,5 +1,5 @@ /* - * Copyright (c) 1983, 1993 + * Copyright (c) 1989, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -27,20 +27,46 @@ * SUCH DAMAGE. */ -#ifndef _DIRENT_COMPAT_H_ -#define _DIRENT_COMPAT_H_ +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)getmntinfo.c 8.1 (Berkeley) 6/4/93"; +#endif /* LIBC_SCCS and not lint */ +#include +__FBSDID("$FreeBSD$"); -#define FREEBSD8_DIRSIZ(dp) \ - (sizeof(struct freebsd8_dirent) - sizeof((dp)->d_name) + \ - (((dp)->d_namlen + 1 + 3) &~ 3)) - -struct freebsd8_stat; - -struct freebsd8_dirent *freebsd8_readdir(DIR *); -int freebsd8_readdir_r(DIR *, struct freebsd8_dirent *, - struct freebsd8_dirent **); -int freebsd8_stat(const char *, struct freebsd8_stat *); -int freebsd8_lstat(const char *, struct freebsd8_stat *); -int freebsd8_fstat(int, struct freebsd8_stat *); +#include +#include +#include +#include -#endif /* _DIRENT_COMPAT_H_ */ +#include "dirent-compat.h" + +/* + * Return information about mounted filesystems. + */ +int +freebsd8_getmntinfo(struct freebsd8_statfs **mntbufp, int flags) +{ + static struct freebsd8_statfs *mntbuf; + static int mntsize; + static long bufsize; + + if (mntsize <= 0 && + (mntsize = freebsd8_getfsstat(0, 0, MNT_NOWAIT)) < 0) + return (0); + if (bufsize > 0 && + (mntsize = freebsd8_getfsstat(mntbuf, bufsize, flags)) < 0) + return (0); + while (bufsize <= mntsize * sizeof(struct freebsd8_statfs)) { + if (mntbuf) + free(mntbuf); + bufsize = (mntsize + 1) * sizeof(struct freebsd8_statfs); + if ((mntbuf = (struct freebsd8_statfs *)malloc(bufsize)) == 0) + return (0); + if ((mntsize = freebsd8_getfsstat(mntbuf, bufsize, flags)) < 0) + return (0); + } + *mntbufp = mntbuf; + return (mntsize); +} + +__sym_compat(getmntinfo, freebsd8_getmntinfo, FBSD_1.0); Modified: soc2011/gk/ino64-head/lib/libc/include/compat.h ============================================================================== --- soc2011/gk/ino64-head/lib/libc/include/compat.h Mon Jul 25 01:42:51 2011 (r224524) +++ soc2011/gk/ino64-head/lib/libc/include/compat.h Mon Jul 25 06:53:25 2011 (r224525) @@ -55,6 +55,11 @@ __sym_compat(getdents, freebsd8_getdents, FBSD_1.0); __sym_compat(getdirentries, freebsd8_getdirentries, FBSD_1.0); +__sym_compat(getfsstat, freebsd8_getfsstat, FBSD_1.0); +__sym_compat(fhstatfs, freebsd8_fhstatfs, FBSD_1.0); +__sym_compat(fstatfs, freebsd8_fstatfs, FBSD_1.0); +__sym_compat(statfs, freebsd8_statfs, FBSD_1.0); + #undef __sym_compat #endif /* __LIBC_COMPAT_H__ */ Modified: soc2011/gk/ino64-head/lib/libc/sys/Symbol.map ============================================================================== --- soc2011/gk/ino64-head/lib/libc/sys/Symbol.map Mon Jul 25 01:42:51 2011 (r224524) +++ soc2011/gk/ino64-head/lib/libc/sys/Symbol.map Mon Jul 25 06:53:25 2011 (r224525) @@ -88,11 +88,9 @@ fchown; fcntl; fhopen; - fhstatfs; flock; fork; fpathconf; - fstatfs; fsync; futimes; getaudit; @@ -103,7 +101,6 @@ getegid; geteuid; getfh; - getfsstat; getgid; getgroups; getitimer; @@ -276,7 +273,6 @@ socketpair; __stack_chk_fail; __stack_chk_guard; - statfs; swapcontext; swapoff; swapon; @@ -354,10 +350,13 @@ cap_enter; cap_getmode; fhstat; + fhstatfs; fstat; fstatat; + fstatfs; getdents; getdirentries; + getfsstat; getloginclass; lstat; posix_fallocate; @@ -368,6 +367,7 @@ rctl_remove_rule; setloginclass; stat; + statfs; }; FBSDprivate_1.0 { Modified: soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32.h ============================================================================== --- soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32.h Mon Jul 25 01:42:51 2011 (r224524) +++ soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32.h Mon Jul 25 06:53:25 2011 (r224525) @@ -84,7 +84,8 @@ struct timeval32 it_value; }; -#define FREEBSD4_MNAMELEN (88 - 2 * sizeof(int32_t)) /* size of on/from name bufs */ +#define FREEBSD4_MFSNAMELEN 16 +#define FREEBSD4_MNAMELEN (88 - 2 * sizeof(int32_t)) /* 4.x version */ struct statfs32 { @@ -102,7 +103,7 @@ int32_t f_flags; int32_t f_syncwrites; int32_t f_asyncwrites; - char f_fstypename[MFSNAMELEN]; + char f_fstypename[FREEBSD4_MFSNAMELEN]; char f_mntonname[FREEBSD4_MNAMELEN]; int32_t f_syncreads; int32_t f_asyncreads; Modified: soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_misc.c ============================================================================== --- soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_misc.c Mon Jul 25 01:42:51 2011 (r224524) +++ soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_misc.c Mon Jul 25 06:53:25 2011 (r224525) @@ -1347,14 +1347,17 @@ freebsd4_freebsd32_statfs(struct thread *td, struct freebsd4_freebsd32_statfs_args *uap) { struct statfs32 s32; - struct statfs s; + struct statfs *sp; int error; - error = kern_statfs(td, uap->path, UIO_USERSPACE, &s); - if (error) - return (error); - copy_statfs(&s, &s32); - return (copyout(&s32, uap->buf, sizeof(s32))); + sp = malloc(sizeof(struct statfs), M_TEMP, M_WAITOK); + error = kern_statfs(td, uap->path, UIO_USERSPACE, sp); + if (error == 0) { + copy_statfs(sp, &s32); + error = copyout(&s32, uap->buf, sizeof(s32)); + } + free(sp, M_TEMP); + return (error); } #endif @@ -1363,14 +1366,17 @@ freebsd4_freebsd32_fstatfs(struct thread *td, struct freebsd4_freebsd32_fstatfs_args *uap) { struct statfs32 s32; - struct statfs s; + struct statfs *sp; int error; - error = kern_fstatfs(td, uap->fd, &s); - if (error) - return (error); - copy_statfs(&s, &s32); - return (copyout(&s32, uap->buf, sizeof(s32))); + sp = malloc(sizeof(struct statfs), M_TEMP, M_WAITOK); + error = kern_fstatfs(td, uap->fd, sp); + if (error == 0) { + copy_statfs(sp, &s32); + error = copyout(&s32, uap->buf, sizeof(s32)); + } + free(sp, M_TEMP); + return (error); } #endif @@ -1379,17 +1385,20 @@ freebsd4_freebsd32_fhstatfs(struct thread *td, struct freebsd4_freebsd32_fhstatfs_args *uap) { struct statfs32 s32; - struct statfs s; + struct statfs *sp; fhandle_t fh; int error; if ((error = copyin(uap->u_fhp, &fh, sizeof(fhandle_t))) != 0) return (error); - error = kern_fhstatfs(td, fh, &s); - if (error) - return (error); - copy_statfs(&s, &s32); - return (copyout(&s32, uap->buf, sizeof(s32))); + sp = malloc(sizeof(struct statfs), M_TEMP, M_WAITOK); + error = kern_fhstatfs(td, fh, sp); + if (error == 0) { + copy_statfs(sp, &s32); + error = copyout(&s32, uap->buf, sizeof(s32)); + } + free(sp, M_TEMP); + return (error); } #endif Modified: soc2011/gk/ino64-head/sys/compat/freebsd32/syscalls.master ============================================================================== --- soc2011/gk/ino64-head/sys/compat/freebsd32/syscalls.master Mon Jul 25 01:42:51 2011 (r224524) +++ soc2011/gk/ino64-head/sys/compat/freebsd32/syscalls.master Mon Jul 25 06:53:25 2011 (r224525) @@ -696,13 +696,16 @@ size_t nbytes, struct sf_hdtr32 *hdtr, \ off_t *sbytes, int flags); } 394 AUE_NULL UNIMPL mac_syscall -395 AUE_GETFSSTAT NOPROTO { int getfsstat(struct statfs *buf, \ +395 AUE_GETFSSTAT COMPAT8|NOPROTO { int getfsstat( \ + struct freebsd8_statfs *buf, \ long bufsize, int flags); } -396 AUE_STATFS NOPROTO { int statfs(char *path, \ - struct statfs *buf); } -397 AUE_FSTATFS NOPROTO { int fstatfs(int fd, struct statfs *buf); } -398 AUE_FHSTATFS NOPROTO { int fhstatfs(const struct fhandle *u_fhp, \ +396 AUE_STATFS COMPAT8|NOPROTO { int statfs(char *path, \ struct statfs *buf); } +397 AUE_FSTATFS COMPAT8|NOPROTO { int fstatfs(int fd, \ + struct freebsd8_statfs *buf); } +398 AUE_FHSTATFS COMPAT8|NOPROTO { int fhstatfs( \ + const struct fhandle *u_fhp, \ + struct freebsd8_statfs *buf); } 399 AUE_NULL UNIMPL nosys 400 AUE_NULL NOSTD|NOPROTO { int ksem_close(semid_t id); } 401 AUE_NULL NOSTD|NOPROTO { int ksem_post(semid_t id); } @@ -1006,3 +1009,10 @@ size_t count); } 538 AUE_GETDIRENTRIES STD { int freebsd32_getdirentries(int fd, \ char *buf, u_int count, int32_t *basep); } +539 AUE_GETFSSTAT NOPROTO { int getfsstat(struct statfs *buf, \ + long bufsize, int flags); } +540 AUE_STATFS NOPROTO { int statfs(char *path, \ + struct statfs *buf); } +541 AUE_FSTATFS NOPROTO { int fstatfs(int fd, struct statfs *buf); } +542 AUE_FHSTATFS NOPROTO { int fhstatfs(const struct fhandle *u_fhp, \ + struct statfs *buf); } Modified: soc2011/gk/ino64-head/sys/compat/linux/linux_stats.c ============================================================================== --- soc2011/gk/ino64-head/sys/compat/linux/linux_stats.c Mon Jul 25 01:42:51 2011 (r224524) +++ soc2011/gk/ino64-head/sys/compat/linux/linux_stats.c Mon Jul 25 06:53:25 2011 (r224525) @@ -394,7 +394,7 @@ linux_statfs(struct thread *td, struct linux_statfs_args *args) { struct l_statfs linux_statfs; - struct statfs bsd_statfs; + struct statfs *bsd_statfs; char *path; int error, dev_shm; @@ -405,14 +405,17 @@ printf(ARGS(statfs, "%s, *"), path); #endif dev_shm = 0; - error = kern_statfs(td, path, UIO_SYSSPACE, &bsd_statfs); + bsd_statfs = malloc(sizeof(struct statfs), M_TEMP, M_WAITOK); + error = kern_statfs(td, path, UIO_SYSSPACE, bsd_statfs); if (strncmp(path, "/dev/shm", sizeof("/dev/shm") - 1) == 0) dev_shm = (path[8] == '\0' || (path[8] == '/' && path[9] == '\0')); LFREEPATH(path); - if (error) + if (error == 0) + bsd_to_linux_statfs(bsd_statfs, &linux_statfs); + free(bsd_statfs, M_TEMP); + if (error != 0) return (error); - bsd_to_linux_statfs(&bsd_statfs, &linux_statfs); if (dev_shm) linux_statfs.f_type = LINUX_SHMFS_MAGIC; return copyout(&linux_statfs, args->buf, sizeof(linux_statfs)); @@ -438,7 +441,7 @@ linux_statfs64(struct thread *td, struct linux_statfs64_args *args) { struct l_statfs64 linux_statfs; - struct statfs bsd_statfs; + struct statfs *bsd_statfs; char *path; int error; @@ -451,11 +454,14 @@ if (ldebug(statfs64)) printf(ARGS(statfs64, "%s, *"), path); #endif - error = kern_statfs(td, path, UIO_SYSSPACE, &bsd_statfs); + bsd_statfs = malloc(sizeof(struct statfs), M_TEMP, M_WAITOK); + error = kern_statfs(td, path, UIO_SYSSPACE, bsd_statfs); LFREEPATH(path); - if (error) + if (error == 0) + bsd_to_linux_statfs64(bsd_statfs, &linux_statfs); + free(bsd_statfs, M_TEMP); + if (error != 0) return (error); - bsd_to_linux_statfs64(&bsd_statfs, &linux_statfs); return copyout(&linux_statfs, args->buf, sizeof(linux_statfs)); } @@ -463,17 +469,20 @@ linux_fstatfs(struct thread *td, struct linux_fstatfs_args *args) { struct l_statfs linux_statfs; - struct statfs bsd_statfs; + struct statfs *bsd_statfs; int error; #ifdef DEBUG if (ldebug(fstatfs)) printf(ARGS(fstatfs, "%d, *"), args->fd); #endif - error = kern_fstatfs(td, args->fd, &bsd_statfs); - if (error) - return error; - bsd_to_linux_statfs(&bsd_statfs, &linux_statfs); + bsd_statfs = malloc(sizeof(struct statfs), M_TEMP, M_WAITOK); + error = kern_fstatfs(td, args->fd, bsd_statfs); + if (error == 0) + bsd_to_linux_statfs(bsd_statfs, &linux_statfs); + free(bsd_statfs, M_TEMP); + if (error != 0) + return (error); return copyout(&linux_statfs, args->buf, sizeof(linux_statfs)); } Modified: soc2011/gk/ino64-head/sys/compat/svr4/svr4_misc.c ============================================================================== --- soc2011/gk/ino64-head/sys/compat/svr4/svr4_misc.c Mon Jul 25 01:42:51 2011 (r224524) +++ soc2011/gk/ino64-head/sys/compat/svr4/svr4_misc.c Mon Jul 25 06:53:25 2011 (r224525) @@ -1383,17 +1383,20 @@ struct svr4_sys_statvfs_args *uap; { struct svr4_statvfs sfs; - struct statfs bfs; + struct statfs *bfs; char *path; int error; CHECKALTEXIST(td, uap->path, &path); - error = kern_statfs(td, path, UIO_SYSSPACE, &bfs); + bfs = malloc(sizeof(struct statfs), M_TEMP, M_WAITOK); + error = kern_statfs(td, path, UIO_SYSSPACE, bfs); free(path, M_TEMP); - if (error) + if (error == 0) + bsd_statfs_to_svr4_statvfs(bfs, &sfs); + free(bfs, M_TEMP); + if (error != 0) return (error); - bsd_statfs_to_svr4_statvfs(&bfs, &sfs); return copyout(&sfs, uap->fs, sizeof(sfs)); } @@ -1404,13 +1407,16 @@ struct svr4_sys_fstatvfs_args *uap; { struct svr4_statvfs sfs; - struct statfs bfs; + struct statfs *bfs; int error; - error = kern_fstatfs(td, uap->fd, &bfs); - if (error) + bfs = malloc(sizeof(struct statfs), M_TEMP, M_WAITOK); + error = kern_fstatfs(td, uap->fd, bfs); + if (error == 0) + bsd_statfs_to_svr4_statvfs(bfs, &sfs); + free(bfs, M_TEMP); + if (error != 0) return (error); - bsd_statfs_to_svr4_statvfs(&bfs, &sfs); return copyout(&sfs, uap->fs, sizeof(sfs)); } @@ -1421,17 +1427,20 @@ struct svr4_sys_statvfs64_args *uap; { struct svr4_statvfs64 sfs; - struct statfs bfs; + struct statfs *bfs; char *path; int error; CHECKALTEXIST(td, uap->path, &path); - error = kern_statfs(td, path, UIO_SYSSPACE, &bfs); + bfs = malloc(sizeof(struct statfs), M_TEMP, M_WAITOK); + error = kern_statfs(td, path, UIO_SYSSPACE, bfs); free(path, M_TEMP); - if (error) + if (error == 0) + bsd_statfs_to_svr4_statvfs64(bfs, &sfs); + free(bfs, M_TEMP); + if (error != 0) return (error); - bsd_statfs_to_svr4_statvfs64(&bfs, &sfs); return copyout(&sfs, uap->fs, sizeof(sfs)); } @@ -1442,13 +1451,16 @@ struct svr4_sys_fstatvfs64_args *uap; { struct svr4_statvfs64 sfs; - struct statfs bfs; + struct statfs *bfs; int error; - error = kern_fstatfs(td, uap->fd, &bfs); - if (error) + bfs = malloc(sizeof(struct statfs), M_TEMP, M_WAITOK); + error = kern_fstatfs(td, uap->fd, bfs); + if (error == 0) + bsd_statfs_to_svr4_statvfs64(bfs, &sfs); + free(bfs, M_TEMP); + if (error != 0) return (error); - bsd_statfs_to_svr4_statvfs64(&bfs, &sfs); return copyout(&sfs, uap->fs, sizeof(sfs)); } Modified: soc2011/gk/ino64-head/sys/fs/nfs/nfs_commonsubs.c ============================================================================== --- soc2011/gk/ino64-head/sys/fs/nfs/nfs_commonsubs.c Mon Jul 25 01:42:51 2011 (r224524) +++ soc2011/gk/ino64-head/sys/fs/nfs/nfs_commonsubs.c Mon Jul 25 06:53:25 2011 (r224525) @@ -1929,7 +1929,7 @@ nfsattrbit_t *retbitp = &retbits; u_int32_t freenum, *retnump; u_int64_t uquad; - struct statfs fs; + struct statfs *fs; struct nfsfsinfo fsinf; struct timespec temptime; struct timeval curtime; @@ -1957,11 +1957,13 @@ /* * Get the VFS_STATFS(), since some attributes need them. */ + fs = malloc(sizeof(struct statfs), M_TEMP, M_WAITOK); if (NFSISSETSTATFS_ATTRBIT(retbitp)) { - error = VFS_STATFS(mp, &fs); + error = VFS_STATFS(mp, fs); if (error != 0) { if (reterr) { nd->nd_repstat = NFSERR_ACCES; + free(fs, M_TEMP); return (0); } NFSCLRSTATFS_ATTRBIT(retbitp); @@ -1993,6 +1995,7 @@ if (error != 0) { if (reterr) { nd->nd_repstat = NFSERR_ACCES; + free(fs, M_TEMP); return (0); } NFSCLRBIT_ATTRBIT(retbitp, NFSATTRBIT_ACL); @@ -2133,7 +2136,7 @@ /* * Check quota and use min(quota, f_ffree). */ - freenum = fs.f_ffree; + freenum = fs->f_ffree; #ifdef QUOTA /* * ufs_quotactl() insists that the uid argument @@ -2156,13 +2159,13 @@ case NFSATTRBIT_FILESFREE: NFSM_BUILD(tl, u_int32_t *, NFSX_HYPER); *tl++ = 0; - *tl = txdr_unsigned(fs.f_ffree); + *tl = txdr_unsigned(fs->f_ffree); retnum += NFSX_HYPER; break; case NFSATTRBIT_FILESTOTAL: NFSM_BUILD(tl, u_int32_t *, NFSX_HYPER); *tl++ = 0; - *tl = txdr_unsigned(fs.f_files); + *tl = txdr_unsigned(fs->f_files); retnum += NFSX_HYPER; break; case NFSATTRBIT_FSLOCATIONS: @@ -2238,9 +2241,9 @@ break; case NFSATTRBIT_QUOTAHARD: if (priv_check_cred(cred, PRIV_VFS_EXCEEDQUOTA, 0)) - freenum = fs.f_bfree; + freenum = fs->f_bfree; else - freenum = fs.f_bavail; + freenum = fs->f_bavail; #ifdef QUOTA /* * ufs_quotactl() insists that the uid argument @@ -2256,15 +2259,15 @@ #endif /* QUOTA */ NFSM_BUILD(tl, u_int32_t *, NFSX_HYPER); uquad = (u_int64_t)freenum; - NFSQUOTABLKTOBYTE(uquad, fs.f_bsize); + NFSQUOTABLKTOBYTE(uquad, fs->f_bsize); txdr_hyper(uquad, tl); retnum += NFSX_HYPER; break; case NFSATTRBIT_QUOTASOFT: if (priv_check_cred(cred, PRIV_VFS_EXCEEDQUOTA, 0)) - freenum = fs.f_bfree; + freenum = fs->f_bfree; else - freenum = fs.f_bavail; + freenum = fs->f_bavail; #ifdef QUOTA /* * ufs_quotactl() insists that the uid argument @@ -2280,7 +2283,7 @@ #endif /* QUOTA */ NFSM_BUILD(tl, u_int32_t *, NFSX_HYPER); uquad = (u_int64_t)freenum; - NFSQUOTABLKTOBYTE(uquad, fs.f_bsize); + NFSQUOTABLKTOBYTE(uquad, fs->f_bsize); txdr_hyper(uquad, tl); retnum += NFSX_HYPER; break; @@ -2301,7 +2304,7 @@ #endif /* QUOTA */ NFSM_BUILD(tl, u_int32_t *, NFSX_HYPER); uquad = (u_int64_t)freenum; - NFSQUOTABLKTOBYTE(uquad, fs.f_bsize); + NFSQUOTABLKTOBYTE(uquad, fs->f_bsize); txdr_hyper(uquad, tl); retnum += NFSX_HYPER; break; @@ -2314,24 +2317,24 @@ case NFSATTRBIT_SPACEAVAIL: NFSM_BUILD(tl, u_int32_t *, NFSX_HYPER); if (priv_check_cred(cred, PRIV_VFS_BLOCKRESERVE, 0)) - uquad = (u_int64_t)fs.f_bfree; + uquad = (u_int64_t)fs->f_bfree; else - uquad = (u_int64_t)fs.f_bavail; - uquad *= fs.f_bsize; + uquad = (u_int64_t)fs->f_bavail; + uquad *= fs->f_bsize; txdr_hyper(uquad, tl); retnum += NFSX_HYPER; break; case NFSATTRBIT_SPACEFREE: NFSM_BUILD(tl, u_int32_t *, NFSX_HYPER); - uquad = (u_int64_t)fs.f_bfree; - uquad *= fs.f_bsize; + uquad = (u_int64_t)fs->f_bfree; + uquad *= fs->f_bsize; txdr_hyper(uquad, tl); retnum += NFSX_HYPER; break; case NFSATTRBIT_SPACETOTAL: NFSM_BUILD(tl, u_int32_t *, NFSX_HYPER); - uquad = (u_int64_t)fs.f_blocks; - uquad *= fs.f_bsize; + uquad = (u_int64_t)fs->f_blocks; + uquad *= fs->f_bsize; txdr_hyper(uquad, tl); retnum += NFSX_HYPER; break; @@ -2404,6 +2407,7 @@ } if (naclp != NULL) acl_free(naclp); + free(fs, M_TEMP); *retnump = txdr_unsigned(retnum); return (retnum + prefixnum); } Modified: soc2011/gk/ino64-head/sys/fs/nfsserver/nfs_nfsdserv.c ============================================================================== --- soc2011/gk/ino64-head/sys/fs/nfsserver/nfs_nfsdserv.c Mon Jul 25 01:42:51 2011 (r224524) +++ soc2011/gk/ino64-head/sys/fs/nfsserver/nfs_nfsdserv.c Mon Jul 25 06:53:25 2011 (r224525) @@ -1924,21 +1924,22 @@ u_int32_t *tl; int getret = 1; struct nfsvattr at; - struct statfs sfs; u_quad_t tval; if (nd->nd_repstat) { nfsrv_postopattr(nd, getret, &at); return (0); } - sf = &sfs; + sf = malloc(sizeof(struct statfs), M_TEMP, M_WAITOK); nd->nd_repstat = nfsvno_statfs(vp, sf); getret = nfsvno_getattr(vp, &at, nd->nd_cred, p, 1); vput(vp); if (nd->nd_flag & ND_NFSV3) nfsrv_postopattr(nd, getret, &at); - if (nd->nd_repstat) + if (nd->nd_repstat) { + free(sf, M_TEMP); return (0); + } if (nd->nd_flag & ND_NFSV2) { NFSM_BUILD(tl, u_int32_t *, NFSX_V2STATFS); *tl++ = txdr_unsigned(NFS_V2MAXDATA); @@ -1965,6 +1966,7 @@ txdr_hyper(tval, tl); tl += 2; *tl = 0; } + free(sf, M_TEMP); return (0); } @@ -3353,19 +3355,20 @@ { int error = 0, ret, fhsize = NFSX_MYFH; struct nfsvattr nva; - struct statfs sf; + struct statfs *sf; struct nfsfsinfo fs; fhandle_t fh; + sf = malloc(sizeof(struct statfs), M_TEMP, M_WAITOK); nd->nd_repstat = nfsvno_getattr(vp, &nva, nd->nd_cred, p, 1); if (!nd->nd_repstat) - nd->nd_repstat = nfsvno_statfs(vp, &sf); + nd->nd_repstat = nfsvno_statfs(vp, sf); if (!nd->nd_repstat) nd->nd_repstat = nfsvno_getfh(vp, &fh, p); if (!nd->nd_repstat) { nfsvno_getfs(&fs, isdgram); error = nfsv4_loadattr(nd, vp, &nva, NULL, &fh, fhsize, NULL, - &sf, NULL, &fs, NULL, 1, &ret, NULL, NULL, p, nd->nd_cred); + sf, NULL, &fs, NULL, 1, &ret, NULL, NULL, p, nd->nd_cred); if (!error) { if (nd->nd_procnum == NFSV4OP_NVERIFY) { if (ret == 0) @@ -3377,6 +3380,7 @@ } } vput(vp); + free(sf, M_TEMP); return (error); } Modified: soc2011/gk/ino64-head/sys/fs/nullfs/null_vfsops.c ============================================================================== --- soc2011/gk/ino64-head/sys/fs/nullfs/null_vfsops.c Mon Jul 25 01:42:51 2011 (r224524) +++ soc2011/gk/ino64-head/sys/fs/nullfs/null_vfsops.c Mon Jul 25 06:53:25 2011 (r224525) @@ -269,28 +269,32 @@ struct statfs *sbp; { int error; - struct statfs mstat; + struct statfs *mstat; NULLFSDEBUG("nullfs_statfs(mp = %p, vp = %p->%p)\n", (void *)mp, (void *)MOUNTTONULLMOUNT(mp)->nullm_rootvp, (void *)NULLVPTOLOWERVP(MOUNTTONULLMOUNT(mp)->nullm_rootvp)); - bzero(&mstat, sizeof(mstat)); + mstat = malloc(sizeof(struct statfs), M_TEMP, M_WAITOK | M_ZERO); - error = VFS_STATFS(MOUNTTONULLMOUNT(mp)->nullm_vfs, &mstat); - if (error) + error = VFS_STATFS(MOUNTTONULLMOUNT(mp)->nullm_vfs, mstat); + if (error) { + free(mstat, M_TEMP); return (error); + } /* now copy across the "interesting" information and fake the rest */ - sbp->f_type = mstat.f_type; - sbp->f_flags = mstat.f_flags; - sbp->f_bsize = mstat.f_bsize; - sbp->f_iosize = mstat.f_iosize; - sbp->f_blocks = mstat.f_blocks; - sbp->f_bfree = mstat.f_bfree; - sbp->f_bavail = mstat.f_bavail; - sbp->f_files = mstat.f_files; - sbp->f_ffree = mstat.f_ffree; + sbp->f_type = mstat->f_type; + sbp->f_flags = mstat->f_flags; + sbp->f_bsize = mstat->f_bsize; + sbp->f_iosize = mstat->f_iosize; + sbp->f_blocks = mstat->f_blocks; + sbp->f_bfree = mstat->f_bfree; + sbp->f_bavail = mstat->f_bavail; + sbp->f_files = mstat->f_files; + sbp->f_ffree = mstat->f_ffree; + + free(mstat, M_TEMP); return (0); } Modified: soc2011/gk/ino64-head/sys/fs/unionfs/union_vfsops.c ============================================================================== --- soc2011/gk/ino64-head/sys/fs/unionfs/union_vfsops.c Mon Jul 25 01:42:51 2011 (r224524) +++ soc2011/gk/ino64-head/sys/fs/unionfs/union_vfsops.c Mon Jul 25 06:53:25 2011 (r224525) @@ -396,7 +396,7 @@ { struct unionfs_mount *ump; int error; - struct statfs mstat; + struct statfs *mstat; uint64_t lbsize; ump = MOUNTTOUNIONFSMOUNT(mp); @@ -404,39 +404,47 @@ UNIONFSDEBUG("unionfs_statfs(mp = %p, lvp = %p, uvp = %p)\n", (void *)mp, (void *)ump->um_lowervp, (void *)ump->um_uppervp); - bzero(&mstat, sizeof(mstat)); + mstat = malloc(sizeof(struct statfs), M_TEMP, M_WAITOK | M_ZERO); - error = VFS_STATFS(ump->um_lowervp->v_mount, &mstat); - if (error) + error = VFS_STATFS(ump->um_lowervp->v_mount, mstat); + if (error) { + free(mstat, M_TEMP); return (error); + } /* now copy across the "interesting" information and fake the rest */ - sbp->f_blocks = mstat.f_blocks; - sbp->f_files = mstat.f_files; + sbp->f_blocks = mstat->f_blocks; + sbp->f_files = mstat->f_files; - lbsize = mstat.f_bsize; + lbsize = mstat->f_bsize; - error = VFS_STATFS(ump->um_uppervp->v_mount, &mstat); - if (error) + error = VFS_STATFS(ump->um_uppervp->v_mount, mstat); + if (error) { + free(mstat, M_TEMP); return (error); + } + /* * The FS type etc is copy from upper vfs. * (write able vfs have priority) */ - sbp->f_type = mstat.f_type; - sbp->f_flags = mstat.f_flags; - sbp->f_bsize = mstat.f_bsize; - sbp->f_iosize = mstat.f_iosize; - - if (mstat.f_bsize != lbsize) - sbp->f_blocks = ((off_t)sbp->f_blocks * lbsize) / mstat.f_bsize; - - sbp->f_blocks += mstat.f_blocks; - sbp->f_bfree = mstat.f_bfree; - sbp->f_bavail = mstat.f_bavail; - sbp->f_files += mstat.f_files; - sbp->f_ffree = mstat.f_ffree; + sbp->f_type = mstat->f_type; + sbp->f_flags = mstat->f_flags; + sbp->f_bsize = mstat->f_bsize; + sbp->f_iosize = mstat->f_iosize; + + if (mstat->f_bsize != lbsize) + sbp->f_blocks = ((off_t)sbp->f_blocks * lbsize) / + mstat->f_bsize; + + sbp->f_blocks += mstat->f_blocks; + sbp->f_bfree = mstat->f_bfree; + sbp->f_bavail = mstat->f_bavail; + sbp->f_files += mstat->f_files; + sbp->f_ffree = mstat->f_ffree; + + free(mstat, M_TEMP); return (0); } Modified: soc2011/gk/ino64-head/sys/i386/ibcs2/ibcs2_stat.c ============================================================================== --- soc2011/gk/ino64-head/sys/i386/ibcs2/ibcs2_stat.c Mon Jul 25 01:42:51 2011 (r224524) +++ soc2011/gk/ino64-head/sys/i386/ibcs2/ibcs2_stat.c Mon Jul 25 06:53:25 2011 (r224525) @@ -107,16 +107,18 @@ struct thread *td; struct ibcs2_statfs_args *uap; { - struct statfs sf; + struct statfs *sf; char *path; int error; CHECKALTEXIST(td, uap->path, &path); - error = kern_statfs(td, path, UIO_SYSSPACE, &sf); + sf = malloc(sizeof(struct statfs), M_TEMP, M_WAITOK); + error = kern_statfs(td, path, UIO_SYSSPACE, sf); free(path, M_TEMP); - if (error) - return (error); - return cvt_statfs(&sf, (caddr_t)uap->buf, uap->len); + if (error == 0) + error = cvt_statfs(sf, (caddr_t)uap->buf, uap->len); + free(sf, M_TEMP); + return (error); } int @@ -124,13 +126,15 @@ struct thread *td; struct ibcs2_fstatfs_args *uap; { - struct statfs sf; + struct statfs *sf; int error; - error = kern_fstatfs(td, uap->fd, &sf); - if (error) - return (error); - return cvt_statfs(&sf, (caddr_t)uap->buf, uap->len); + sf = malloc(sizeof(struct statfs), M_TEMP, M_WAITOK); + error = kern_fstatfs(td, uap->fd, sf); + if (error == 0) + error = cvt_statfs(sf, (caddr_t)uap->buf, uap->len); + free(sf, M_TEMP); + return (error); } int Modified: soc2011/gk/ino64-head/sys/kern/kern_acct.c ============================================================================== --- soc2011/gk/ino64-head/sys/kern/kern_acct.c Mon Jul 25 01:42:51 2011 (r224524) +++ soc2011/gk/ino64-head/sys/kern/kern_acct.c Mon Jul 25 06:53:25 2011 (r224525) @@ -553,7 +553,7 @@ static void acctwatch(void) { - struct statfs sb; + struct statfs *sp; int vfslocked; sx_assert(&acct_sx, SX_XLOCKED); @@ -584,24 +584,27 @@ * Stopping here is better than continuing, maybe it will be VBAD * next time around. */ - if (VFS_STATFS(acct_vp->v_mount, &sb) < 0) { + sp = malloc(sizeof(struct statfs), M_TEMP, M_WAITOK); + if (VFS_STATFS(acct_vp->v_mount, sp) < 0) { VFS_UNLOCK_GIANT(vfslocked); + free(sp, M_TEMP); return; } VFS_UNLOCK_GIANT(vfslocked); if (acct_suspended) { - if (sb.f_bavail > (int64_t)(acctresume * sb.f_blocks / + if (sp->f_bavail > (int64_t)(acctresume * sp->f_blocks / 100)) { acct_suspended = 0; log(LOG_NOTICE, "Accounting resumed\n"); } } else { - if (sb.f_bavail <= (int64_t)(acctsuspend * sb.f_blocks / + if (sp->f_bavail <= (int64_t)(acctsuspend * sp->f_blocks / 100)) { acct_suspended = 1; log(LOG_NOTICE, "Accounting suspended\n"); } } + free(sp, M_TEMP); } /* Modified: soc2011/gk/ino64-head/sys/kern/syscalls.master ============================================================================== --- soc2011/gk/ino64-head/sys/kern/syscalls.master Mon Jul 25 01:42:51 2011 (r224524) +++ soc2011/gk/ino64-head/sys/kern/syscalls.master Mon Jul 25 06:53:25 2011 (r224525) @@ -706,13 +706,14 @@ off_t *sbytes, int flags); } 394 AUE_NULL STD { int mac_syscall(const char *policy, \ int call, void *arg); } -395 AUE_GETFSSTAT STD { int getfsstat(struct statfs *buf, \ +395 AUE_GETFSSTAT COMPAT8 { int getfsstat(struct freebsd8_statfs *buf, \ long bufsize, int flags); } -396 AUE_STATFS STD { int statfs(char *path, \ - struct statfs *buf); } -397 AUE_FSTATFS STD { int fstatfs(int fd, struct statfs *buf); } -398 AUE_FHSTATFS STD { int fhstatfs(const struct fhandle *u_fhp, \ - struct statfs *buf); } +396 AUE_STATFS COMPAT8 { int statfs(char *path, \ + struct freebsd8_statfs *buf); } +397 AUE_FSTATFS COMPAT8 { int fstatfs(int fd, \ + struct freebsd8_statfs *buf); } +398 AUE_FHSTATFS COMPAT8 { int fhstatfs(const struct fhandle *u_fhp, \ + struct freebsd8_statfs *buf); } 399 AUE_NULL UNIMPL nosys *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-soc-all@FreeBSD.ORG Mon Jul 25 06:53:44 2011 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id C5ED6106566B for ; Mon, 25 Jul 2011 06:53:42 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Mon, 25 Jul 2011 06:53:42 +0000 Date: Mon, 25 Jul 2011 06:53:42 +0000 From: gk@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20110725065342.C5ED6106566B@hub.freebsd.org> Cc: Subject: socsvn commit: r224526 - in soc2011/gk/ino64-head/sys: compat/freebsd32 kern sys X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jul 2011 06:53:45 -0000 Author: gk Date: Mon Jul 25 06:53:42 2011 New Revision: 224526 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=224526 Log: Regen Modified: soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_syscall.h soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_syscalls.c soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_sysent.c soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_systrace_args.c soc2011/gk/ino64-head/sys/kern/init_sysent.c soc2011/gk/ino64-head/sys/kern/syscalls.c soc2011/gk/ino64-head/sys/kern/systrace_args.c soc2011/gk/ino64-head/sys/sys/syscall.h soc2011/gk/ino64-head/sys/sys/syscall.mk soc2011/gk/ino64-head/sys/sys/sysproto.h Modified: soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_syscall.h ============================================================================== --- soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_syscall.h Mon Jul 25 06:53:25 2011 (r224525) +++ soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_syscall.h Mon Jul 25 06:53:42 2011 (r224526) @@ -301,10 +301,10 @@ #define FREEBSD32_SYS_lchflags 391 #define FREEBSD32_SYS_uuidgen 392 #define FREEBSD32_SYS_freebsd32_sendfile 393 -#define FREEBSD32_SYS_getfsstat 395 -#define FREEBSD32_SYS_statfs 396 -#define FREEBSD32_SYS_fstatfs 397 -#define FREEBSD32_SYS_fhstatfs 398 +#define FREEBSD32_SYS_freebsd8_getfsstat 395 +#define FREEBSD32_SYS_freebsd8_statfs 396 +#define FREEBSD32_SYS_freebsd8_fstatfs 397 +#define FREEBSD32_SYS_freebsd8_fhstatfs 398 #define FREEBSD32_SYS_ksem_close 400 #define FREEBSD32_SYS_ksem_post 401 #define FREEBSD32_SYS_ksem_wait 402 @@ -429,4 +429,8 @@ #define FREEBSD32_SYS_freebsd32_fstatat 536 #define FREEBSD32_SYS_getdents 537 #define FREEBSD32_SYS_freebsd32_getdirentries 538 -#define FREEBSD32_SYS_MAXSYSCALL 539 +#define FREEBSD32_SYS_getfsstat 539 +#define FREEBSD32_SYS_statfs 540 +#define FREEBSD32_SYS_fstatfs 541 +#define FREEBSD32_SYS_fhstatfs 542 +#define FREEBSD32_SYS_MAXSYSCALL 543 Modified: soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_syscalls.c ============================================================================== --- soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_syscalls.c Mon Jul 25 06:53:25 2011 (r224525) +++ soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_syscalls.c Mon Jul 25 06:53:42 2011 (r224526) @@ -405,10 +405,10 @@ "uuidgen", /* 392 = uuidgen */ "freebsd32_sendfile", /* 393 = freebsd32_sendfile */ "#394", /* 394 = mac_syscall */ - "getfsstat", /* 395 = getfsstat */ - "statfs", /* 396 = statfs */ - "fstatfs", /* 397 = fstatfs */ - "fhstatfs", /* 398 = fhstatfs */ + "compat8.getfsstat", /* 395 = freebsd8 getfsstat */ + "compat8.statfs", /* 396 = freebsd8 statfs */ + "compat8.fstatfs", /* 397 = freebsd8 fstatfs */ + "compat8.fhstatfs", /* 398 = freebsd8 fhstatfs */ "#399", /* 399 = nosys */ "ksem_close", /* 400 = ksem_close */ "ksem_post", /* 401 = ksem_post */ @@ -562,4 +562,8 @@ "freebsd32_fstatat", /* 536 = freebsd32_fstatat */ "getdents", /* 537 = getdents */ "freebsd32_getdirentries", /* 538 = freebsd32_getdirentries */ + "getfsstat", /* 539 = getfsstat */ + "statfs", /* 540 = statfs */ + "fstatfs", /* 541 = fstatfs */ + "fhstatfs", /* 542 = fhstatfs */ }; Modified: soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_sysent.c ============================================================================== --- soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_sysent.c Mon Jul 25 06:53:25 2011 (r224525) +++ soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_sysent.c Mon Jul 25 06:53:42 2011 (r224526) @@ -448,10 +448,10 @@ { AS(uuidgen_args), (sy_call_t *)uuidgen, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 392 = uuidgen */ { AS(freebsd32_sendfile_args), (sy_call_t *)freebsd32_sendfile, AUE_SENDFILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 393 = freebsd32_sendfile */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 394 = mac_syscall */ - { AS(getfsstat_args), (sy_call_t *)getfsstat, AUE_GETFSSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 395 = getfsstat */ - { AS(statfs_args), (sy_call_t *)statfs, AUE_STATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 396 = statfs */ - { AS(fstatfs_args), (sy_call_t *)fstatfs, AUE_FSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 397 = fstatfs */ - { AS(fhstatfs_args), (sy_call_t *)fhstatfs, AUE_FHSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 398 = fhstatfs */ + { compat8(AS(freebsd8_getfsstat_args),getfsstat), AUE_GETFSSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 395 = freebsd8 getfsstat */ + { compat8(AS(freebsd8_statfs_args),statfs), AUE_STATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 396 = freebsd8 statfs */ + { compat8(AS(freebsd8_fstatfs_args),fstatfs), AUE_FSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 397 = freebsd8 fstatfs */ + { compat8(AS(freebsd8_fhstatfs_args),fhstatfs), AUE_FHSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 398 = freebsd8 fhstatfs */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 399 = nosys */ { AS(ksem_close_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 400 = ksem_close */ { AS(ksem_post_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 401 = ksem_post */ @@ -605,4 +605,8 @@ { AS(freebsd32_fstatat_args), (sy_call_t *)freebsd32_fstatat, AUE_FSTATAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 536 = freebsd32_fstatat */ { AS(getdents_args), (sy_call_t *)getdents, AUE_O_GETDENTS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 537 = getdents */ { AS(freebsd32_getdirentries_args), (sy_call_t *)freebsd32_getdirentries, AUE_GETDIRENTRIES, NULL, 0, 0, 0, SY_THR_STATIC }, /* 538 = freebsd32_getdirentries */ + { AS(getfsstat_args), (sy_call_t *)getfsstat, AUE_GETFSSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 539 = getfsstat */ + { AS(statfs_args), (sy_call_t *)statfs, AUE_STATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 540 = statfs */ + { AS(fstatfs_args), (sy_call_t *)fstatfs, AUE_FSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 541 = fstatfs */ + { AS(fhstatfs_args), (sy_call_t *)fhstatfs, AUE_FHSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 542 = fhstatfs */ }; Modified: soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_systrace_args.c ============================================================================== --- soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_systrace_args.c Mon Jul 25 06:53:25 2011 (r224525) +++ soc2011/gk/ino64-head/sys/compat/freebsd32/freebsd32_systrace_args.c Mon Jul 25 06:53:42 2011 (r224526) @@ -1846,39 +1846,6 @@ *n_args = 8; break; } - /* getfsstat */ - case 395: { - struct getfsstat_args *p = params; - uarg[0] = (intptr_t) p->buf; /* struct statfs * */ - iarg[1] = p->bufsize; /* long */ - iarg[2] = p->flags; /* int */ - *n_args = 3; - break; - } - /* statfs */ - case 396: { - struct statfs_args *p = params; - uarg[0] = (intptr_t) p->path; /* char * */ - uarg[1] = (intptr_t) p->buf; /* struct statfs * */ - *n_args = 2; - break; - } - /* fstatfs */ - case 397: { - struct fstatfs_args *p = params; - iarg[0] = p->fd; /* int */ - uarg[1] = (intptr_t) p->buf; /* struct statfs * */ - *n_args = 2; - break; - } - /* fhstatfs */ - case 398: { - struct fhstatfs_args *p = params; - uarg[0] = (intptr_t) p->u_fhp; /* const struct fhandle * */ - uarg[1] = (intptr_t) p->buf; /* struct statfs * */ - *n_args = 2; - break; - } /* ksem_close */ case 400: { struct ksem_close_args *p = params; @@ -2994,6 +2961,39 @@ *n_args = 4; break; } + /* getfsstat */ + case 539: { + struct getfsstat_args *p = params; + uarg[0] = (intptr_t) p->buf; /* struct statfs * */ + iarg[1] = p->bufsize; /* long */ + iarg[2] = p->flags; /* int */ + *n_args = 3; + break; + } + /* statfs */ + case 540: { + struct statfs_args *p = params; + uarg[0] = (intptr_t) p->path; /* char * */ + uarg[1] = (intptr_t) p->buf; /* struct statfs * */ + *n_args = 2; + break; + } + /* fstatfs */ + case 541: { + struct fstatfs_args *p = params; + iarg[0] = p->fd; /* int */ + uarg[1] = (intptr_t) p->buf; /* struct statfs * */ + *n_args = 2; + break; + } + /* fhstatfs */ + case 542: { + struct fhstatfs_args *p = params; + uarg[0] = (intptr_t) p->u_fhp; /* const struct fhandle * */ + uarg[1] = (intptr_t) p->buf; /* struct statfs * */ + *n_args = 2; + break; + } default: *n_args = 0; break; @@ -5954,61 +5954,6 @@ break; }; break; - /* getfsstat */ - case 395: - switch(ndx) { - case 0: - p = "struct statfs *"; - break; - case 1: - p = "long"; - break; - case 2: - p = "int"; - break; - default: - break; - }; - break; - /* statfs */ - case 396: - switch(ndx) { - case 0: - p = "char *"; - break; - case 1: - p = "struct statfs *"; - break; - default: - break; - }; - break; - /* fstatfs */ - case 397: - switch(ndx) { - case 0: - p = "int"; - break; - case 1: - p = "struct statfs *"; - break; - default: - break; - }; - break; - /* fhstatfs */ - case 398: - switch(ndx) { - case 0: - p = "const struct fhandle *"; - break; - case 1: - p = "struct statfs *"; - break; - default: - break; - }; - break; /* ksem_close */ case 400: switch(ndx) { @@ -7988,6 +7933,61 @@ break; }; break; + /* getfsstat */ + case 539: + switch(ndx) { + case 0: + p = "struct statfs *"; + break; + case 1: + p = "long"; + break; + case 2: + p = "int"; + break; + default: + break; + }; + break; + /* statfs */ + case 540: + switch(ndx) { + case 0: + p = "char *"; + break; + case 1: + p = "struct statfs *"; + break; + default: + break; + }; + break; + /* fstatfs */ + case 541: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "struct statfs *"; + break; + default: + break; + }; + break; + /* fhstatfs */ + case 542: + switch(ndx) { + case 0: + p = "const struct fhandle *"; + break; + case 1: + p = "struct statfs *"; + break; + default: + break; + }; + break; default: break; }; Modified: soc2011/gk/ino64-head/sys/kern/init_sysent.c ============================================================================== --- soc2011/gk/ino64-head/sys/kern/init_sysent.c Mon Jul 25 06:53:25 2011 (r224525) +++ soc2011/gk/ino64-head/sys/kern/init_sysent.c Mon Jul 25 06:53:42 2011 (r224526) @@ -435,10 +435,10 @@ { AS(uuidgen_args), (sy_call_t *)uuidgen, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 392 = uuidgen */ { AS(sendfile_args), (sy_call_t *)sendfile, AUE_SENDFILE, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 393 = sendfile */ { AS(mac_syscall_args), (sy_call_t *)mac_syscall, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 394 = mac_syscall */ - { AS(getfsstat_args), (sy_call_t *)getfsstat, AUE_GETFSSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 395 = getfsstat */ - { AS(statfs_args), (sy_call_t *)statfs, AUE_STATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 396 = statfs */ - { AS(fstatfs_args), (sy_call_t *)fstatfs, AUE_FSTATFS, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 397 = fstatfs */ - { AS(fhstatfs_args), (sy_call_t *)fhstatfs, AUE_FHSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 398 = fhstatfs */ + { compat8(AS(freebsd8_getfsstat_args),getfsstat), AUE_GETFSSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 395 = freebsd8 getfsstat */ + { compat8(AS(freebsd8_statfs_args),statfs), AUE_STATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 396 = freebsd8 statfs */ + { compat8(AS(freebsd8_fstatfs_args),fstatfs), AUE_FSTATFS, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 397 = freebsd8 fstatfs */ + { compat8(AS(freebsd8_fhstatfs_args),fhstatfs), AUE_FHSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 398 = freebsd8 fhstatfs */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 399 = nosys */ { AS(ksem_close_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 400 = ksem_close */ { AS(ksem_post_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 401 = ksem_post */ @@ -579,4 +579,8 @@ { AS(fstatat_args), (sy_call_t *)fstatat, AUE_FSTATAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 536 = fstatat */ { AS(getdents_args), (sy_call_t *)getdents, AUE_O_GETDENTS, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 537 = getdents */ { AS(getdirentries_args), (sy_call_t *)getdirentries, AUE_GETDIRENTRIES, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 538 = getdirentries */ + { AS(getfsstat_args), (sy_call_t *)getfsstat, AUE_GETFSSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 539 = getfsstat */ + { AS(statfs_args), (sy_call_t *)statfs, AUE_STATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 540 = statfs */ + { AS(fstatfs_args), (sy_call_t *)fstatfs, AUE_FSTATFS, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 541 = fstatfs */ + { AS(fhstatfs_args), (sy_call_t *)fhstatfs, AUE_FHSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 542 = fhstatfs */ }; Modified: soc2011/gk/ino64-head/sys/kern/syscalls.c ============================================================================== --- soc2011/gk/ino64-head/sys/kern/syscalls.c Mon Jul 25 06:53:25 2011 (r224525) +++ soc2011/gk/ino64-head/sys/kern/syscalls.c Mon Jul 25 06:53:42 2011 (r224526) @@ -402,10 +402,10 @@ "uuidgen", /* 392 = uuidgen */ "sendfile", /* 393 = sendfile */ "mac_syscall", /* 394 = mac_syscall */ - "getfsstat", /* 395 = getfsstat */ - "statfs", /* 396 = statfs */ - "fstatfs", /* 397 = fstatfs */ - "fhstatfs", /* 398 = fhstatfs */ + "compat8.getfsstat", /* 395 = freebsd8 getfsstat */ + "compat8.statfs", /* 396 = freebsd8 statfs */ + "compat8.fstatfs", /* 397 = freebsd8 fstatfs */ + "compat8.fhstatfs", /* 398 = freebsd8 fhstatfs */ "#399", /* 399 = nosys */ "ksem_close", /* 400 = ksem_close */ "ksem_post", /* 401 = ksem_post */ @@ -546,4 +546,8 @@ "fstatat", /* 536 = fstatat */ "getdents", /* 537 = getdents */ "getdirentries", /* 538 = getdirentries */ + "getfsstat", /* 539 = getfsstat */ + "statfs", /* 540 = statfs */ + "fstatfs", /* 541 = fstatfs */ + "fhstatfs", /* 542 = fhstatfs */ }; Modified: soc2011/gk/ino64-head/sys/kern/systrace_args.c ============================================================================== --- soc2011/gk/ino64-head/sys/kern/systrace_args.c Mon Jul 25 06:53:25 2011 (r224525) +++ soc2011/gk/ino64-head/sys/kern/systrace_args.c Mon Jul 25 06:53:42 2011 (r224526) @@ -2063,39 +2063,6 @@ *n_args = 3; break; } - /* getfsstat */ - case 395: { - struct getfsstat_args *p = params; - uarg[0] = (intptr_t) p->buf; /* struct statfs * */ - iarg[1] = p->bufsize; /* long */ - iarg[2] = p->flags; /* int */ - *n_args = 3; - break; - } - /* statfs */ - case 396: { - struct statfs_args *p = params; - uarg[0] = (intptr_t) p->path; /* char * */ - uarg[1] = (intptr_t) p->buf; /* struct statfs * */ - *n_args = 2; - break; - } - /* fstatfs */ - case 397: { - struct fstatfs_args *p = params; - iarg[0] = p->fd; /* int */ - uarg[1] = (intptr_t) p->buf; /* struct statfs * */ - *n_args = 2; - break; - } - /* fhstatfs */ - case 398: { - struct fhstatfs_args *p = params; - uarg[0] = (intptr_t) p->u_fhp; /* const struct fhandle * */ - uarg[1] = (intptr_t) p->buf; /* struct statfs * */ - *n_args = 2; - break; - } /* ksem_close */ case 400: { struct ksem_close_args *p = params; @@ -3170,6 +3137,39 @@ *n_args = 4; break; } + /* getfsstat */ + case 539: { + struct getfsstat_args *p = params; + uarg[0] = (intptr_t) p->buf; /* struct statfs * */ + iarg[1] = p->bufsize; /* long */ + iarg[2] = p->flags; /* int */ + *n_args = 3; + break; + } + /* statfs */ + case 540: { + struct statfs_args *p = params; + uarg[0] = (intptr_t) p->path; /* char * */ + uarg[1] = (intptr_t) p->buf; /* struct statfs * */ + *n_args = 2; + break; + } + /* fstatfs */ + case 541: { + struct fstatfs_args *p = params; + iarg[0] = p->fd; /* int */ + uarg[1] = (intptr_t) p->buf; /* struct statfs * */ + *n_args = 2; + break; + } + /* fhstatfs */ + case 542: { + struct fhstatfs_args *p = params; + uarg[0] = (intptr_t) p->u_fhp; /* const struct fhandle * */ + uarg[1] = (intptr_t) p->buf; /* struct statfs * */ + *n_args = 2; + break; + } default: *n_args = 0; break; @@ -6512,61 +6512,6 @@ break; }; break; - /* getfsstat */ - case 395: - switch(ndx) { - case 0: - p = "struct statfs *"; - break; - case 1: - p = "long"; - break; - case 2: - p = "int"; - break; - default: - break; - }; - break; - /* statfs */ - case 396: - switch(ndx) { - case 0: - p = "char *"; - break; - case 1: - p = "struct statfs *"; - break; - default: - break; - }; - break; - /* fstatfs */ - case 397: - switch(ndx) { - case 0: - p = "int"; - break; - case 1: - p = "struct statfs *"; - break; - default: - break; - }; - break; - /* fhstatfs */ - case 398: - switch(ndx) { - case 0: - p = "const struct fhandle *"; - break; - case 1: - p = "struct statfs *"; - break; - default: - break; - }; - break; /* ksem_close */ case 400: switch(ndx) { @@ -8435,6 +8380,61 @@ break; }; break; + /* getfsstat */ + case 539: + switch(ndx) { + case 0: + p = "struct statfs *"; + break; + case 1: + p = "long"; + break; + case 2: + p = "int"; + break; + default: + break; + }; + break; + /* statfs */ + case 540: + switch(ndx) { + case 0: + p = "char *"; + break; + case 1: + p = "struct statfs *"; + break; + default: + break; + }; + break; + /* fstatfs */ + case 541: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "struct statfs *"; + break; + default: + break; + }; + break; + /* fhstatfs */ + case 542: + switch(ndx) { + case 0: + p = "const struct fhandle *"; + break; + case 1: + p = "struct statfs *"; + break; + default: + break; + }; + break; default: break; }; Modified: soc2011/gk/ino64-head/sys/sys/syscall.h ============================================================================== --- soc2011/gk/ino64-head/sys/sys/syscall.h Mon Jul 25 06:53:25 2011 (r224525) +++ soc2011/gk/ino64-head/sys/sys/syscall.h Mon Jul 25 06:53:42 2011 (r224526) @@ -320,10 +320,10 @@ #define SYS_uuidgen 392 #define SYS_sendfile 393 #define SYS_mac_syscall 394 -#define SYS_getfsstat 395 -#define SYS_statfs 396 -#define SYS_fstatfs 397 -#define SYS_fhstatfs 398 +#define SYS_freebsd8_getfsstat 395 +#define SYS_freebsd8_statfs 396 +#define SYS_freebsd8_fstatfs 397 +#define SYS_freebsd8_fhstatfs 398 #define SYS_ksem_close 400 #define SYS_ksem_post 401 #define SYS_ksem_wait 402 @@ -448,4 +448,8 @@ #define SYS_fstatat 536 #define SYS_getdents 537 #define SYS_getdirentries 538 -#define SYS_MAXSYSCALL 539 +#define SYS_getfsstat 539 +#define SYS_statfs 540 +#define SYS_fstatfs 541 +#define SYS_fhstatfs 542 +#define SYS_MAXSYSCALL 543 Modified: soc2011/gk/ino64-head/sys/sys/syscall.mk ============================================================================== --- soc2011/gk/ino64-head/sys/sys/syscall.mk Mon Jul 25 06:53:25 2011 (r224525) +++ soc2011/gk/ino64-head/sys/sys/syscall.mk Mon Jul 25 06:53:42 2011 (r224526) @@ -269,10 +269,10 @@ uuidgen.o \ sendfile.o \ mac_syscall.o \ - getfsstat.o \ - statfs.o \ - fstatfs.o \ - fhstatfs.o \ + freebsd8_getfsstat.o \ + freebsd8_statfs.o \ + freebsd8_fstatfs.o \ + freebsd8_fhstatfs.o \ ksem_close.o \ ksem_post.o \ ksem_wait.o \ @@ -396,4 +396,8 @@ fhstat.o \ fstatat.o \ getdents.o \ - getdirentries.o + getdirentries.o \ + getfsstat.o \ + statfs.o \ + fstatfs.o \ + fhstatfs.o Modified: soc2011/gk/ino64-head/sys/sys/sysproto.h ============================================================================== --- soc2011/gk/ino64-head/sys/sys/sysproto.h Mon Jul 25 06:53:25 2011 (r224525) +++ soc2011/gk/ino64-head/sys/sys/sysproto.h Mon Jul 25 06:53:42 2011 (r224526) @@ -1100,23 +1100,6 @@ char call_l_[PADL_(int)]; int call; char call_r_[PADR_(int)]; char arg_l_[PADL_(void *)]; void * arg; char arg_r_[PADR_(void *)]; }; -struct getfsstat_args { - char buf_l_[PADL_(struct statfs *)]; struct statfs * buf; char buf_r_[PADR_(struct statfs *)]; - char bufsize_l_[PADL_(long)]; long bufsize; char bufsize_r_[PADR_(long)]; - char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; -}; -struct statfs_args { - char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; - char buf_l_[PADL_(struct statfs *)]; struct statfs * buf; char buf_r_[PADR_(struct statfs *)]; -}; -struct fstatfs_args { - char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; - char buf_l_[PADL_(struct statfs *)]; struct statfs * buf; char buf_r_[PADR_(struct statfs *)]; -}; -struct fhstatfs_args { - char u_fhp_l_[PADL_(const struct fhandle *)]; const struct fhandle * u_fhp; char u_fhp_r_[PADR_(const struct fhandle *)]; - char buf_l_[PADL_(struct statfs *)]; struct statfs * buf; char buf_r_[PADR_(struct statfs *)]; -}; struct ksem_close_args { char id_l_[PADL_(semid_t)]; semid_t id; char id_r_[PADR_(semid_t)]; }; @@ -1701,6 +1684,23 @@ char count_l_[PADL_(u_int)]; u_int count; char count_r_[PADR_(u_int)]; char basep_l_[PADL_(long *)]; long * basep; char basep_r_[PADR_(long *)]; }; +struct getfsstat_args { + char buf_l_[PADL_(struct statfs *)]; struct statfs * buf; char buf_r_[PADR_(struct statfs *)]; + char bufsize_l_[PADL_(long)]; long bufsize; char bufsize_r_[PADR_(long)]; + char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; +}; +struct statfs_args { + char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; + char buf_l_[PADL_(struct statfs *)]; struct statfs * buf; char buf_r_[PADR_(struct statfs *)]; +}; +struct fstatfs_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char buf_l_[PADL_(struct statfs *)]; struct statfs * buf; char buf_r_[PADR_(struct statfs *)]; +}; +struct fhstatfs_args { + char u_fhp_l_[PADL_(const struct fhandle *)]; const struct fhandle * u_fhp; char u_fhp_r_[PADR_(const struct fhandle *)]; + char buf_l_[PADL_(struct statfs *)]; struct statfs * buf; char buf_r_[PADR_(struct statfs *)]; +}; int nosys(struct thread *, struct nosys_args *); void sys_exit(struct thread *, struct sys_exit_args *); int fork(struct thread *, struct fork_args *); @@ -1942,10 +1942,6 @@ int uuidgen(struct thread *, struct uuidgen_args *); int sendfile(struct thread *, struct sendfile_args *); int mac_syscall(struct thread *, struct mac_syscall_args *); -int getfsstat(struct thread *, struct getfsstat_args *); -int statfs(struct thread *, struct statfs_args *); -int fstatfs(struct thread *, struct fstatfs_args *); -int fhstatfs(struct thread *, struct fhstatfs_args *); int ksem_close(struct thread *, struct ksem_close_args *); int ksem_post(struct thread *, struct ksem_post_args *); int ksem_wait(struct thread *, struct ksem_wait_args *); @@ -2069,6 +2065,10 @@ int fstatat(struct thread *, struct fstatat_args *); int getdents(struct thread *, struct getdents_args *); int getdirentries(struct thread *, struct getdirentries_args *); +int getfsstat(struct thread *, struct getfsstat_args *); +int statfs(struct thread *, struct statfs_args *); +int fstatfs(struct thread *, struct fstatfs_args *); +int fhstatfs(struct thread *, struct fhstatfs_args *); #ifdef COMPAT_43 @@ -2375,6 +2375,23 @@ char u_fhp_l_[PADL_(const struct fhandle *)]; const struct fhandle * u_fhp; char u_fhp_r_[PADR_(const struct fhandle *)]; char sb_l_[PADL_(struct freebsd8_stat *)]; struct freebsd8_stat * sb; char sb_r_[PADR_(struct freebsd8_stat *)]; }; +struct freebsd8_getfsstat_args { + char buf_l_[PADL_(struct freebsd8_statfs *)]; struct freebsd8_statfs * buf; char buf_r_[PADR_(struct freebsd8_statfs *)]; + char bufsize_l_[PADL_(long)]; long bufsize; char bufsize_r_[PADR_(long)]; + char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; +}; +struct freebsd8_statfs_args { + char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; + char buf_l_[PADL_(struct freebsd8_statfs *)]; struct freebsd8_statfs * buf; char buf_r_[PADR_(struct freebsd8_statfs *)]; +}; +struct freebsd8_fstatfs_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char buf_l_[PADL_(struct freebsd8_statfs *)]; struct freebsd8_statfs * buf; char buf_r_[PADR_(struct freebsd8_statfs *)]; +}; +struct freebsd8_fhstatfs_args { + char u_fhp_l_[PADL_(const struct fhandle *)]; const struct fhandle * u_fhp; char u_fhp_r_[PADR_(const struct fhandle *)]; + char buf_l_[PADL_(struct freebsd8_statfs *)]; struct freebsd8_statfs * buf; char buf_r_[PADR_(struct freebsd8_statfs *)]; +}; struct freebsd8_fstatat_args { char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)]; @@ -2390,6 +2407,10 @@ int freebsd8_nfstat(struct thread *, struct freebsd8_nfstat_args *); int freebsd8_nlstat(struct thread *, struct freebsd8_nlstat_args *); int freebsd8_fhstat(struct thread *, struct freebsd8_fhstat_args *); +int freebsd8_getfsstat(struct thread *, struct freebsd8_getfsstat_args *); +int freebsd8_statfs(struct thread *, struct freebsd8_statfs_args *); +int freebsd8_fstatfs(struct thread *, struct freebsd8_fstatfs_args *); +int freebsd8_fhstatfs(struct thread *, struct freebsd8_fhstatfs_args *); int freebsd8_fstatat(struct thread *, struct freebsd8_fstatat_args *); #endif /* COMPAT_FREEBSD8 */ @@ -2694,10 +2715,10 @@ #define SYS_AUE_uuidgen AUE_NULL #define SYS_AUE_sendfile AUE_SENDFILE #define SYS_AUE_mac_syscall AUE_NULL -#define SYS_AUE_getfsstat AUE_GETFSSTAT -#define SYS_AUE_statfs AUE_STATFS -#define SYS_AUE_fstatfs AUE_FSTATFS -#define SYS_AUE_fhstatfs AUE_FHSTATFS +#define SYS_AUE_freebsd8_getfsstat AUE_GETFSSTAT +#define SYS_AUE_freebsd8_statfs AUE_STATFS +#define SYS_AUE_freebsd8_fstatfs AUE_FSTATFS +#define SYS_AUE_freebsd8_fhstatfs AUE_FHSTATFS #define SYS_AUE_ksem_close AUE_NULL #define SYS_AUE_ksem_post AUE_NULL #define SYS_AUE_ksem_wait AUE_NULL @@ -2822,6 +2843,10 @@ #define SYS_AUE_fstatat AUE_FSTATAT #define SYS_AUE_getdents AUE_O_GETDENTS #define SYS_AUE_getdirentries AUE_GETDIRENTRIES +#define SYS_AUE_getfsstat AUE_GETFSSTAT +#define SYS_AUE_statfs AUE_STATFS +#define SYS_AUE_fstatfs AUE_FSTATFS +#define SYS_AUE_fhstatfs AUE_FHSTATFS #undef PAD_ #undef PADL_ From owner-svn-soc-all@FreeBSD.ORG Mon Jul 25 06:53:59 2011 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 5E81B1065670 for ; Mon, 25 Jul 2011 06:53:57 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Mon, 25 Jul 2011 06:53:57 +0000 Date: Mon, 25 Jul 2011 06:53:57 +0000 From: gk@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20110725065357.5E81B1065670@hub.freebsd.org> Cc: Subject: socsvn commit: r224527 - soc2011/gk/ino64-head/lib/libc/gen X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jul 2011 06:53:59 -0000 Author: gk Date: Mon Jul 25 06:53:57 2011 New Revision: 224527 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=224527 Log: Rename dirent-compat.h to gen-compat.h File no longer contains definitions specific to dirent Added: soc2011/gk/ino64-head/lib/libc/gen/gen-compat.h (contents, props changed) - copied, changed from r224526, soc2011/gk/ino64-head/lib/libc/gen/dirent-compat.h Deleted: soc2011/gk/ino64-head/lib/libc/gen/dirent-compat.h Modified: soc2011/gk/ino64-head/lib/libc/gen/fts-compat.c soc2011/gk/ino64-head/lib/libc/gen/fts-compat8.c soc2011/gk/ino64-head/lib/libc/gen/getmntinfo-compat8.c soc2011/gk/ino64-head/lib/libc/gen/glob-compat8.c soc2011/gk/ino64-head/lib/libc/gen/readdir-compat8.c soc2011/gk/ino64-head/lib/libc/gen/scandir-compat8.c Modified: soc2011/gk/ino64-head/lib/libc/gen/fts-compat.c ============================================================================== --- soc2011/gk/ino64-head/lib/libc/gen/fts-compat.c Mon Jul 25 06:53:42 2011 (r224526) +++ soc2011/gk/ino64-head/lib/libc/gen/fts-compat.c Mon Jul 25 06:53:57 2011 (r224527) @@ -49,7 +49,7 @@ #include #include #include -#include "dirent-compat.h" +#include "gen-compat.h" #include "fts-compat.h" #include "un-namespace.h" Modified: soc2011/gk/ino64-head/lib/libc/gen/fts-compat8.c ============================================================================== --- soc2011/gk/ino64-head/lib/libc/gen/fts-compat8.c Mon Jul 25 06:53:42 2011 (r224526) +++ soc2011/gk/ino64-head/lib/libc/gen/fts-compat8.c Mon Jul 25 06:53:57 2011 (r224527) @@ -49,7 +49,7 @@ #include #include #include -#include "dirent-compat.h" +#include "gen-compat.h" #include "fts-compat8.h" #include "un-namespace.h" Copied and modified: soc2011/gk/ino64-head/lib/libc/gen/gen-compat.h (from r224526, soc2011/gk/ino64-head/lib/libc/gen/dirent-compat.h) ============================================================================== --- soc2011/gk/ino64-head/lib/libc/gen/dirent-compat.h Mon Jul 25 06:53:42 2011 (r224526, copy source) +++ soc2011/gk/ino64-head/lib/libc/gen/gen-compat.h Mon Jul 25 06:53:57 2011 (r224527) @@ -27,8 +27,8 @@ * SUCH DAMAGE. */ -#ifndef _DIRENT_COMPAT_H_ -#define _DIRENT_COMPAT_H_ +#ifndef _GEN_COMPAT_H_ +#define _GEN_COMPAT_H_ #include @@ -51,4 +51,4 @@ int freebsd8_getfsstat(struct freebsd8_statfs *, long, int); int freebsd8_getmntinfo(struct freebsd8_statfs **, int); -#endif /* _DIRENT_COMPAT_H_ */ +#endif /* _GEN_COMPAT_H_ */ Modified: soc2011/gk/ino64-head/lib/libc/gen/getmntinfo-compat8.c ============================================================================== --- soc2011/gk/ino64-head/lib/libc/gen/getmntinfo-compat8.c Mon Jul 25 06:53:42 2011 (r224526) +++ soc2011/gk/ino64-head/lib/libc/gen/getmntinfo-compat8.c Mon Jul 25 06:53:57 2011 (r224527) @@ -38,7 +38,7 @@ #include #include -#include "dirent-compat.h" +#include "gen-compat.h" /* * Return information about mounted filesystems. Modified: soc2011/gk/ino64-head/lib/libc/gen/glob-compat8.c ============================================================================== --- soc2011/gk/ino64-head/lib/libc/gen/glob-compat8.c Mon Jul 25 06:53:42 2011 (r224526) +++ soc2011/gk/ino64-head/lib/libc/gen/glob-compat8.c Mon Jul 25 06:53:57 2011 (r224527) @@ -84,7 +84,7 @@ #include #include "collate.h" -#include "dirent-compat.h" +#include "gen-compat.h" #include "glob-compat8.h" #define DOLLAR '$' Modified: soc2011/gk/ino64-head/lib/libc/gen/readdir-compat8.c ============================================================================== --- soc2011/gk/ino64-head/lib/libc/gen/readdir-compat8.c Mon Jul 25 06:53:42 2011 (r224526) +++ soc2011/gk/ino64-head/lib/libc/gen/readdir-compat8.c Mon Jul 25 06:53:57 2011 (r224527) @@ -41,8 +41,8 @@ #include "un-namespace.h" #include "libc_private.h" -#include "dirent-compat.h" #include "dirent-private.h" +#include "gen-compat.h" #include "telldir.h" static int Modified: soc2011/gk/ino64-head/lib/libc/gen/scandir-compat8.c ============================================================================== --- soc2011/gk/ino64-head/lib/libc/gen/scandir-compat8.c Mon Jul 25 06:53:42 2011 (r224526) +++ soc2011/gk/ino64-head/lib/libc/gen/scandir-compat8.c Mon Jul 25 06:53:57 2011 (r224527) @@ -36,7 +36,7 @@ #include #include "un-namespace.h" -#include "dirent-compat.h" +#include "gen-compat.h" static int alphasort_thunk(void *thunk, const void *p1, const void *p2); From owner-svn-soc-all@FreeBSD.ORG Tue Jul 26 07:39:32 2011 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id CA275106564A for ; Tue, 26 Jul 2011 07:39:31 +0000 (UTC) (envelope-from kibab@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 26 Jul 2011 07:39:31 +0000 Date: Tue, 26 Jul 2011 07:39:31 +0000 From: kibab@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20110726073931.CA275106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r224640 - soc2011/kibab/freebsd-src-head/contrib/bind9/lib/lwres X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jul 2011 07:39:32 -0000 Author: kibab Date: Tue Jul 26 07:39:31 2011 New Revision: 224640 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=224640 Log: Use global socket, not destroying it after each request. Modified: soc2011/kibab/freebsd-src-head/contrib/bind9/lib/lwres/context.c Modified: soc2011/kibab/freebsd-src-head/contrib/bind9/lib/lwres/context.c ============================================================================== --- soc2011/kibab/freebsd-src-head/contrib/bind9/lib/lwres/context.c Tue Jul 26 04:33:00 2011 (r224639) +++ soc2011/kibab/freebsd-src-head/contrib/bind9/lib/lwres/context.c Tue Jul 26 07:39:31 2011 (r224640) @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: context.c,v 1.50.332.5 2009-09-01 23:47:05 tbox Exp $ */ +/* $Id: context.c,v 1.50.332.5 2009/09/01 23:47:05 tbox Exp $ */ /*! \file context.c lwres_context_create() creates a #lwres_context_t structure for use in @@ -131,6 +131,8 @@ LIBLWRES_EXTERNAL_DATA lwres_uint16_t lwres_udp_port = LWRES_UDP_PORT; LIBLWRES_EXTERNAL_DATA const char *lwres_resolv_conf = LWRES_RESOLV_CONF; +static int glob_socket = 0; + static void * lwres_malloc(void *, size_t); @@ -218,7 +220,7 @@ ctx = *contextp; *contextp = NULL; - if (ctx->sock != -1) { + if (ctx->sock != -1 && !glob_socket) { #ifdef WIN32 DestroySockets(); #endif @@ -331,32 +333,41 @@ #ifdef WIN32 InitSockets(); #endif - s = socket(domain, SOCK_DGRAM, IPPROTO_UDP); - if (s < 0) { + + if(glob_socket==0) { + printf("Creating new socket!!!\n"); + s = socket(domain, SOCK_DGRAM, IPPROTO_UDP); + if (s < 0) { #ifdef WIN32 - DestroySockets(); + DestroySockets(); #endif - return (LWRES_R_IOERROR); - } + return (LWRES_R_IOERROR); + } - ret = connect(s, sa, salen); - if (ret != 0) { + ret = connect(s, sa, salen); + if (ret != 0) { #ifdef WIN32 - DestroySockets(); + DestroySockets(); #endif - (void)close(s); - return (LWRES_R_IOERROR); - } + (void)close(s); + return (LWRES_R_IOERROR); + } - MAKE_NONBLOCKING(s, ret); - if (ret < 0) { + MAKE_NONBLOCKING(s, ret); + if (ret < 0) { #ifdef WIN32 - DestroySockets(); + DestroySockets(); #endif - (void)close(s); - return (LWRES_R_IOERROR); - } + (void)close(s); + return (LWRES_R_IOERROR); + //glob_socket = s; + } + glob_socket = s; + } else { + printf("Reusing existing socket!\n"); + s = glob_socket; + } ctx->sock = s; return (LWRES_R_SUCCESS); From owner-svn-soc-all@FreeBSD.ORG Tue Jul 26 08:17:16 2011 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 5EEEA106566C for ; Tue, 26 Jul 2011 08:17:14 +0000 (UTC) (envelope-from kibab@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 26 Jul 2011 08:17:14 +0000 Date: Tue, 26 Jul 2011 08:17:14 +0000 From: kibab@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20110726081714.5EEEA106566C@hub.freebsd.org> Cc: Subject: socsvn commit: r224641 - in soc2011/kibab/freebsd-src-head/contrib/bind9/lib/lwres: . include/lwres X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jul 2011 08:17:16 -0000 Author: kibab Date: Tue Jul 26 08:17:14 2011 New Revision: 224641 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=224641 Log: New function lwres_globsocket_init(), should be called outside the sandbox to create socket that is used later for communication with local resolver Modified: soc2011/kibab/freebsd-src-head/contrib/bind9/lib/lwres/context.c soc2011/kibab/freebsd-src-head/contrib/bind9/lib/lwres/include/lwres/lwres.h Modified: soc2011/kibab/freebsd-src-head/contrib/bind9/lib/lwres/context.c ============================================================================== --- soc2011/kibab/freebsd-src-head/contrib/bind9/lib/lwres/context.c Tue Jul 26 07:39:31 2011 (r224640) +++ soc2011/kibab/freebsd-src-head/contrib/bind9/lib/lwres/context.c Tue Jul 26 08:17:14 2011 (r224641) @@ -145,6 +145,24 @@ static lwres_result_t context_connect(lwres_context_t *); +/*! + * lwres_result_t + */ +lwres_result_t +lwres_globsocket_init() +{ + lwres_context_t *ctx; + lwres_result_t res; + + ctx = NULL; + res = lwres_context_create(&ctx, NULL, NULL, NULL, 0); + + if(res != LWRES_R_SUCCESS) + return res; + + return context_connect(ctx); +} + /*% * Creates a #lwres_context_t structure for use in * lightweight resolver operations. Modified: soc2011/kibab/freebsd-src-head/contrib/bind9/lib/lwres/include/lwres/lwres.h ============================================================================== --- soc2011/kibab/freebsd-src-head/contrib/bind9/lib/lwres/include/lwres/lwres.h Tue Jul 26 07:39:31 2011 (r224640) +++ soc2011/kibab/freebsd-src-head/contrib/bind9/lib/lwres/include/lwres/lwres.h Tue Jul 26 08:17:14 2011 (r224641) @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: lwres.h,v 1.57 2007-06-19 23:47:23 tbox Exp $ */ +/* $Id: lwres.h,v 1.57 2007/06/19 23:47:23 tbox Exp $ */ #ifndef LWRES_LWRES_H #define LWRES_LWRES_H 1 @@ -537,6 +537,15 @@ * ctx != NULL */ +lwres_result_t +lwres_globsocket_init(); +/**< + * creates a connection to local resolver daemon. + * Must be used before sandbox creation. + * + * Requires: should not be in sandbox. + */ + lwres_conf_t * lwres_conf_get(lwres_context_t *ctx); /**< From owner-svn-soc-all@FreeBSD.ORG Tue Jul 26 08:22:21 2011 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 27FE01065673 for ; Tue, 26 Jul 2011 08:22:19 +0000 (UTC) (envelope-from kibab@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 26 Jul 2011 08:22:19 +0000 Date: Tue, 26 Jul 2011 08:22:19 +0000 From: kibab@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20110726082219.27FE01065673@hub.freebsd.org> Cc: Subject: socsvn commit: r224642 - soc2011/kibab/freebsd-src-head/contrib/bind9/lib/lwres X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jul 2011 08:22:21 -0000 Author: kibab Date: Tue Jul 26 08:22:18 2011 New Revision: 224642 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=224642 Log: Remove debug prints Modified: soc2011/kibab/freebsd-src-head/contrib/bind9/lib/lwres/context.c Modified: soc2011/kibab/freebsd-src-head/contrib/bind9/lib/lwres/context.c ============================================================================== --- soc2011/kibab/freebsd-src-head/contrib/bind9/lib/lwres/context.c Tue Jul 26 08:17:14 2011 (r224641) +++ soc2011/kibab/freebsd-src-head/contrib/bind9/lib/lwres/context.c Tue Jul 26 08:22:18 2011 (r224642) @@ -353,7 +353,6 @@ #endif if(glob_socket==0) { - printf("Creating new socket!!!\n"); s = socket(domain, SOCK_DGRAM, IPPROTO_UDP); if (s < 0) { #ifdef WIN32 @@ -383,7 +382,6 @@ } glob_socket = s; } else { - printf("Reusing existing socket!\n"); s = glob_socket; } ctx->sock = s; From owner-svn-soc-all@FreeBSD.ORG Tue Jul 26 11:17:57 2011 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id ECE11106564A for ; Tue, 26 Jul 2011 11:17:54 +0000 (UTC) (envelope-from rudot@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Tue, 26 Jul 2011 11:17:54 +0000 Date: Tue, 26 Jul 2011 11:17:54 +0000 From: rudot@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20110726111754.ECE11106564A@hub.freebsd.org> Cc: Subject: socsvn commit: r224644 - soc2011/rudot/kern X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jul 2011 11:17:57 -0000 Author: rudot Date: Tue Jul 26 11:17:54 2011 New Revision: 224644 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=224644 Log: check if the per-cpu current thread ptr is a valid pointer. If not then do not use it. Modified: soc2011/rudot/kern/sched_fbfs.c Modified: soc2011/rudot/kern/sched_fbfs.c ============================================================================== --- soc2011/rudot/kern/sched_fbfs.c Tue Jul 26 10:50:33 2011 (r224643) +++ soc2011/rudot/kern/sched_fbfs.c Tue Jul 26 11:17:54 2011 (r224644) @@ -149,7 +149,6 @@ SYSCTL_INT(_kern_sched, OID_AUTO, slice, CTLFLAG_RW, &sched_slice, 0, "Slice size for timeshare threads"); - static __inline void sched_load_add(void) { @@ -613,28 +612,32 @@ struct pcpu * pcpu; struct td_sched *ts; struct td_sched *tsc; + struct thread *pcpu_thr; u_char c; c = td->td_lastcpu; if (c == NOCPU) return (0); pcpu = pcpu_find(c); - if (pcpu->pc_curthread == pcpu->pc_idlethread) { + pcpu_thr = pcpu->pc_curthread; + if (pcpu_thr == NULL) + return (0); + if (pcpu_thr == pcpu->pc_idlethread) { if (PCPU_GET(cpuid) != c) ipi_cpu(c, IPI_AST); return (1); } - cpri = pcpu->pc_curthread->td_priority; + cpri = pcpu_thr->td_priority; if (cpri < td->td_priority) return (0); if (cpri > td->td_priority) { - pcpu->pc_curthread->td_flags |= TDF_NEEDRESCHED; + pcpu_thr->td_flags |= TDF_NEEDRESCHED; if (PCPU_GET(cpuid) != c) ipi_cpu(c, IPI_AST); return (1); } ts = td->td_sched; - tsc = pcpu->pc_curthread->td_sched; + tsc = pcpu_thr->td_sched; if ((td->td_pri_class == PRI_TIMESHARE) || (td->td_pri_class == PRI_IDLE)) { if (ts->ts_vdeadline >= tsc->ts_vdeadline) @@ -647,7 +650,7 @@ * Further, the virtual deadline of td is lower. Therefore we * reschedule the td_lastcpu. */ - pcpu->pc_curthread->td_flags |= TDF_NEEDRESCHED; + pcpu_thr->td_flags |= TDF_NEEDRESCHED; if (PCPU_GET(cpuid) != c) ipi_cpu(c, IPI_AST); @@ -667,6 +670,9 @@ ts = max_thread->td_sched; SLIST_FOREACH(pc, &cpuhead, pc_allcpu) { cthr = pc->pc_curthread; + if (cthr == NULL) { + continue; + } if (max_prio < cthr->td_priority) { max_thread = cthr; max_prio = max_thread->td_priority;