Date: Thu, 16 Jun 2011 23:55:23 +0800 (CST) From: Tai-hwa Liang <avatar@mmlab.cse.yzu.edu.tw> To: Bruce Evans <brde@optusnet.com.au> Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, Stefan Farfeleder <stefanf@FreeBSD.org>, src-committers@FreeBSD.org Subject: Re: svn commit: r223138 - head/sys/ufs/ffs Message-ID: <1106162352252.45438@www.mmlab.cse.yzu.edu.tw> In-Reply-To: <20110617000654.W1926@besplex.bde.org> References: <201106160526.p5G5Q3RX013915@svn.freebsd.org> <20110616065310.GA2542@mole.fafoe.narf.at> <20110616175314.R935@besplex.bde.org> <1106161923211.44181@www.mmlab.cse.yzu.edu.tw> <20110617000654.W1926@besplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 17 Jun 2011, Bruce Evans wrote:
> On Thu, 16 Jun 2011, Tai-hwa Liang wrote:
>> On Thu, 16 Jun 2011, Bruce Evans wrote:
>>> It might be a style bug (like typedefing a struct) to use enums for
>>> anything. They are impossible to declare opaquely.
>>
>> Does that mean we have to #include <sys/vnode.h> in userland
>> makefs/ffs/ffs_bswap.c?
>
> It means that you should implement headers properly, so that they don't
> depend on other headers to begin with or grow dependencies on other
> headers. Though the should-be-kernel-only header <sys/vnode.h> has some
> parts including `enum vtype' that have already escaped to userland, other
> headers shouldn't grow dependencies on these.
How about wrapping offended sections with #ifdef _KERNEL? Should be less
intrusive IMHO:
Index: ffs_extern.h
===================================================================
--- ffs_extern.h (revision 223146)
+++ ffs_extern.h (working copy)
@@ -33,7 +33,6 @@
#ifndef _UFS_FFS_EXTERN_H
#define _UFS_FFS_EXTERN_H
-enum vtype;
struct buf;
struct cg;
struct fid;
@@ -57,8 +56,10 @@
int ffs_balloc_ufs2(struct vnode *a_vp, off_t a_startoffset, int a_size,
struct ucred *a_cred, int a_flags, struct buf **a_bpp);
int ffs_blkatoff(struct vnode *, off_t, char **, struct buf **);
+#ifdef _KERNEL
void ffs_blkfree(struct ufsmount *, struct fs *, struct vnode *,
ufs2_daddr_t, long, ino_t, enum vtype, struct workhead *);
+#endif /* _KERNEL */
ufs2_daddr_t ffs_blkpref_ufs1(struct inode *, ufs_lbn_t, int, ufs1_daddr_t *);
ufs2_daddr_t ffs_blkpref_ufs2(struct inode *, ufs_lbn_t, int, ufs2_daddr_t *);
int ffs_checkfreefile(struct fs *, struct vnode *, ino_t);
@@ -82,8 +83,10 @@
ufs2_daddr_t, int, int, int, struct ucred *, struct buf **);
int ffs_sbupdate(struct ufsmount *, int, int);
void ffs_setblock(struct fs *, u_char *, ufs1_daddr_t);
+#ifdef _KERNEL
int ffs_snapblkfree(struct fs *, struct vnode *, ufs2_daddr_t, long, ino_t,
enum vtype, struct workhead *);
+#endif /* _KERNEL */
void ffs_snapremove(struct vnode *vp);
int ffs_snapshot(struct mount *mp, char *snapfile);
void ffs_snapshot_mount(struct mount *mp);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1106162352252.45438>
