Module Name: src
Committed By: hannken
Date: Sun Jun 16 13:33:30 UTC 2013
Modified Files:
src/sys/sys: param.h
src/sys/ufs/ffs: ffs_extern.h ffs_snapshot.c ffs_vfsops.c
src/sys/ufs/ufs: ufs_extern.h ufs_lookup.c ufsmount.h
Log Message:
Add an UFS_SNAPGONE() ufs op replacing the calls
to ffs_snapgone() in ufs_lookup.c.
Ok: David Holland <[email protected]>
Welcome to 6.99.22
To generate a diff of this commit:
cvs rdiff -u -r1.430 -r1.431 src/sys/sys/param.h
cvs rdiff -u -r1.79 -r1.80 src/sys/ufs/ffs/ffs_extern.h
cvs rdiff -u -r1.122 -r1.123 src/sys/ufs/ffs/ffs_snapshot.c
cvs rdiff -u -r1.283 -r1.284 src/sys/ufs/ffs/ffs_vfsops.c
cvs rdiff -u -r1.72 -r1.73 src/sys/ufs/ufs/ufs_extern.h
cvs rdiff -u -r1.123 -r1.124 src/sys/ufs/ufs/ufs_lookup.c
cvs rdiff -u -r1.39 -r1.40 src/sys/ufs/ufs/ufsmount.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/sys/param.h
diff -u src/sys/sys/param.h:1.430 src/sys/sys/param.h:1.431
--- src/sys/sys/param.h:1.430 Wed May 29 00:47:49 2013
+++ src/sys/sys/param.h Sun Jun 16 13:33:30 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: param.h,v 1.430 2013/05/29 00:47:49 christos Exp $ */
+/* $NetBSD: param.h,v 1.431 2013/06/16 13:33:30 hannken Exp $ */
/*-
* Copyright (c) 1982, 1986, 1989, 1993
@@ -63,7 +63,7 @@
* 2.99.9 (299000900)
*/
-#define __NetBSD_Version__ 699002100 /* NetBSD 6.99.21 */
+#define __NetBSD_Version__ 699002200 /* NetBSD 6.99.22 */
#define __NetBSD_Prereq__(M,m,p) (((((M) * 100000000) + \
(m) * 1000000) + (p) * 100) <= __NetBSD_Version__)
Index: src/sys/ufs/ffs/ffs_extern.h
diff -u src/sys/ufs/ffs/ffs_extern.h:1.79 src/sys/ufs/ffs/ffs_extern.h:1.80
--- src/sys/ufs/ffs/ffs_extern.h:1.79 Fri Oct 19 17:09:08 2012
+++ src/sys/ufs/ffs/ffs_extern.h Sun Jun 16 13:33:30 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs_extern.h,v 1.79 2012/10/19 17:09:08 drochner Exp $ */
+/* $NetBSD: ffs_extern.h,v 1.80 2013/06/16 13:33:30 hannken Exp $ */
/*-
* Copyright (c) 1991, 1993, 1994
@@ -153,7 +153,7 @@ void ffs_snapremove(struct vnode *);
int ffs_snapshot(struct mount *, struct vnode *, struct timespec *);
void ffs_snapshot_mount(struct mount *);
void ffs_snapshot_unmount(struct mount *);
-void ffs_snapgone(struct inode *);
+void ffs_snapgone(struct vnode *);
int ffs_snapshot_read(struct vnode *, struct uio *, int);
/* Write Ahead Physical Block Logging */
Index: src/sys/ufs/ffs/ffs_snapshot.c
diff -u src/sys/ufs/ffs/ffs_snapshot.c:1.122 src/sys/ufs/ffs/ffs_snapshot.c:1.123
--- src/sys/ufs/ffs/ffs_snapshot.c:1.122 Tue May 7 09:40:54 2013
+++ src/sys/ufs/ffs/ffs_snapshot.c Sun Jun 16 13:33:30 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs_snapshot.c,v 1.122 2013/05/07 09:40:54 hannken Exp $ */
+/* $NetBSD: ffs_snapshot.c,v 1.123 2013/06/16 13:33:30 hannken Exp $ */
/*
* Copyright 2000 Marshall Kirk McKusick. All Rights Reserved.
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ffs_snapshot.c,v 1.122 2013/05/07 09:40:54 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ffs_snapshot.c,v 1.123 2013/06/16 13:33:30 hannken Exp $");
#if defined(_KERNEL_OPT)
#include "opt_ffs.h"
@@ -1372,10 +1372,10 @@ blocks_in_journal(struct fs *fs)
* It will not be freed until the last open reference goes away.
*/
void
-ffs_snapgone(struct inode *ip)
+ffs_snapgone(struct vnode *vp)
{
+ struct inode *xp, *ip = VTOI(vp);
struct mount *mp = ip->i_devvp->v_specmountpoint;
- struct inode *xp;
struct fs *fs;
struct snap_info *si;
int snaploc;
Index: src/sys/ufs/ffs/ffs_vfsops.c
diff -u src/sys/ufs/ffs/ffs_vfsops.c:1.283 src/sys/ufs/ffs/ffs_vfsops.c:1.284
--- src/sys/ufs/ffs/ffs_vfsops.c:1.283 Sun Jun 9 17:57:08 2013
+++ src/sys/ufs/ffs/ffs_vfsops.c Sun Jun 16 13:33:30 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs_vfsops.c,v 1.283 2013/06/09 17:57:08 dholland Exp $ */
+/* $NetBSD: ffs_vfsops.c,v 1.284 2013/06/16 13:33:30 hannken Exp $ */
/*-
* Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -61,7 +61,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ffs_vfsops.c,v 1.283 2013/06/09 17:57:08 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ffs_vfsops.c,v 1.284 2013/06/16 13:33:30 hannken Exp $");
#if defined(_KERNEL_OPT)
#include "opt_ffs.h"
@@ -174,6 +174,7 @@ static const struct ufs_ops ffs_ufsops =
.uo_vfree = ffs_vfree,
.uo_balloc = ffs_balloc,
.uo_unmark_vnode = (void (*)(vnode_t *))nullop,
+ .uo_snapgone = ffs_snapgone,
};
static int
Index: src/sys/ufs/ufs/ufs_extern.h
diff -u src/sys/ufs/ufs/ufs_extern.h:1.72 src/sys/ufs/ufs/ufs_extern.h:1.73
--- src/sys/ufs/ufs/ufs_extern.h:1.72 Wed May 9 00:21:18 2012
+++ src/sys/ufs/ufs/ufs_extern.h Sun Jun 16 13:33:30 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: ufs_extern.h,v 1.72 2012/05/09 00:21:18 riastradh Exp $ */
+/* $NetBSD: ufs_extern.h,v 1.73 2013/06/16 13:33:30 hannken Exp $ */
/*-
* Copyright (c) 1991, 1993, 1994
@@ -199,12 +199,6 @@ int ufs_makeinode(int, struct vnode *, c
int ufs_gop_alloc(struct vnode *, off_t, off_t, int, kauth_cred_t);
void ufs_gop_markupdate(struct vnode *, int);
-/*
- * Snapshot function prototypes.
- */
-
-void ffs_snapgone(struct inode *);
-
__END_DECLS
extern kmutex_t ufs_ihash_lock;
Index: src/sys/ufs/ufs/ufs_lookup.c
diff -u src/sys/ufs/ufs/ufs_lookup.c:1.123 src/sys/ufs/ufs/ufs_lookup.c:1.124
--- src/sys/ufs/ufs/ufs_lookup.c:1.123 Sun Jun 9 17:57:09 2013
+++ src/sys/ufs/ufs/ufs_lookup.c Sun Jun 16 13:33:30 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: ufs_lookup.c,v 1.123 2013/06/09 17:57:09 dholland Exp $ */
+/* $NetBSD: ufs_lookup.c,v 1.124 2013/06/16 13:33:30 hannken Exp $ */
/*
* Copyright (c) 1989, 1993
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ufs_lookup.c,v 1.123 2013/06/09 17:57:09 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ufs_lookup.c,v 1.124 2013/06/16 13:33:30 hannken Exp $");
#ifdef _KERNEL_OPT
#include "opt_ffs.h"
@@ -1150,7 +1150,7 @@ out:
*/
if (ip != 0 && (ip->i_flags & SF_SNAPSHOT) != 0 &&
ip->i_nlink == 0)
- ffs_snapgone(ip);
+ UFS_SNAPGONE(ITOV(ip));
UFS_WAPBL_UPDATE(dvp, NULL, NULL, 0);
return (error);
}
@@ -1199,7 +1199,7 @@ ufs_dirrewrite(struct inode *dp, off_t o
* when last open reference goes away.
*/
if ((oip->i_flags & SF_SNAPSHOT) != 0 && oip->i_nlink == 0)
- ffs_snapgone(oip);
+ UFS_SNAPGONE(ITOV(oip));
UFS_WAPBL_UPDATE(vdp, NULL, NULL, UPDATE_DIROP);
return (error);
}
Index: src/sys/ufs/ufs/ufsmount.h
diff -u src/sys/ufs/ufs/ufsmount.h:1.39 src/sys/ufs/ufs/ufsmount.h:1.40
--- src/sys/ufs/ufs/ufsmount.h:1.39 Fri Oct 19 17:09:08 2012
+++ src/sys/ufs/ufs/ufsmount.h Sun Jun 16 13:33:30 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: ufsmount.h,v 1.39 2012/10/19 17:09:08 drochner Exp $ */
+/* $NetBSD: ufsmount.h,v 1.40 2013/06/16 13:33:30 hannken Exp $ */
/*
* Copyright (c) 1982, 1986, 1989, 1993
@@ -139,6 +139,7 @@ struct ufs_ops {
int (*uo_balloc)(struct vnode *, off_t, int, kauth_cred_t, int,
struct buf **);
void (*uo_unmark_vnode)(struct vnode *);
+ void (*uo_snapgone)(struct vnode *);
};
#define UFS_OPS(vp) (VFSTOUFS((vp)->v_mount)->um_ops)
@@ -157,6 +158,8 @@ struct ufs_ops {
(*UFS_OPS(vp)->uo_balloc)((vp), (off), (size), (cr), (flags), (bpp))
#define UFS_UNMARK_VNODE(vp) \
(*UFS_OPS(vp)->uo_unmark_vnode)((vp))
+#define UFS_SNAPGONE(vp) \
+ (*UFS_OPS(vp)->uo_snapgone)((vp))
/* UFS-specific flags */
#define UFS_NEEDSWAP 0x01 /* filesystem metadata need byte-swapping */