Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/ufs Apparently we also need to cut and paste ffs_snapgon...
details: https://anonhg.NetBSD.org/src/rev/111837f971d1
branches: trunk
changeset: 787203:111837f971d1
user: dholland <dholland%NetBSD.org@localhost>
date: Thu Jun 06 00:50:51 2013 +0000
description:
Apparently we also need to cut and paste ffs_snapgone() in order to be
able to link the ufs code.
Instead of actually cutting and pasting it (as it depends on ffs-only
things) implement it as panic. Probably we'll be able to demonstrate
later that it's unreachable.
XXX: Someone should add snapgone to struct ufs_ops in ufs/ufsmount.h,
XXX: and fix ufs/ufs_lookup.c to not hardwire ffs.
diffstat:
sys/ufs/files.ufs | 3 +-
sys/ufs/lfs/ulfs_extern.h | 4 +-
sys/ufs/lfs/ulfs_lookup.c | 8 ++--
sys/ufs/lfs/ulfs_snapshot.c | 90 +++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 98 insertions(+), 7 deletions(-)
diffs (165 lines):
diff -r f1a7c812e3db -r 111837f971d1 sys/ufs/files.ufs
--- a/sys/ufs/files.ufs Thu Jun 06 00:49:28 2013 +0000
+++ b/sys/ufs/files.ufs Thu Jun 06 00:50:51 2013 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: files.ufs,v 1.30 2013/06/06 00:46:40 dholland Exp $
+# $NetBSD: files.ufs,v 1.31 2013/06/06 00:50:51 dholland Exp $
deffs FFS
deffs EXT2FS
@@ -83,6 +83,7 @@
file ufs/lfs/ulfs_quota1_subr.c lfs
file ufs/lfs/ulfs_quota2_subr.c lfs & lfs_quota2
file ufs/lfs/ulfs_rename.c lfs
+file ufs/lfs/ulfs_snapshot.c lfs
file ufs/lfs/ulfs_vfsops.c lfs
file ufs/lfs/ulfs_vnops.c lfs
file ufs/lfs/ulfs_wapbl.c lfs
diff -r f1a7c812e3db -r 111837f971d1 sys/ufs/lfs/ulfs_extern.h
--- a/sys/ufs/lfs/ulfs_extern.h Thu Jun 06 00:49:28 2013 +0000
+++ b/sys/ufs/lfs/ulfs_extern.h Thu Jun 06 00:50:51 2013 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: ulfs_extern.h,v 1.3 2013/06/06 00:49:28 dholland Exp $ */
+/* $NetBSD: ulfs_extern.h,v 1.4 2013/06/06 00:50:51 dholland Exp $ */
/* from NetBSD: ufs_extern.h,v 1.72 2012/05/09 00:21:18 riastradh Exp */
/*-
@@ -204,7 +204,7 @@
* Snapshot function prototypes.
*/
-void lfs_snapgone(struct inode *);
+void ulfs_snapgone(struct inode *);
__END_DECLS
diff -r f1a7c812e3db -r 111837f971d1 sys/ufs/lfs/ulfs_lookup.c
--- a/sys/ufs/lfs/ulfs_lookup.c Thu Jun 06 00:49:28 2013 +0000
+++ b/sys/ufs/lfs/ulfs_lookup.c Thu Jun 06 00:50:51 2013 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: ulfs_lookup.c,v 1.5 2013/06/06 00:49:28 dholland Exp $ */
+/* $NetBSD: ulfs_lookup.c,v 1.6 2013/06/06 00:50:51 dholland Exp $ */
/* from NetBSD: ufs_lookup.c,v 1.122 2013/01/22 09:39:18 dholland Exp */
/*
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ulfs_lookup.c,v 1.5 2013/06/06 00:49:28 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ulfs_lookup.c,v 1.6 2013/06/06 00:50:51 dholland Exp $");
#ifdef _KERNEL_OPT
#include "opt_lfs.h"
@@ -1151,7 +1151,7 @@
*/
if (ip != 0 && (ip->i_flags & SF_SNAPSHOT) != 0 &&
ip->i_nlink == 0)
- lfs_snapgone(ip);
+ ulfs_snapgone(ip);
ULFS_WAPBL_UPDATE(dvp, NULL, NULL, 0);
return (error);
}
@@ -1200,7 +1200,7 @@
* when last open reference goes away.
*/
if ((oip->i_flags & SF_SNAPSHOT) != 0 && oip->i_nlink == 0)
- lfs_snapgone(oip);
+ ulfs_snapgone(oip);
ULFS_WAPBL_UPDATE(vdp, NULL, NULL, UPDATE_DIROP);
return (error);
}
diff -r f1a7c812e3db -r 111837f971d1 sys/ufs/lfs/ulfs_snapshot.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/ufs/lfs/ulfs_snapshot.c Thu Jun 06 00:50:51 2013 +0000
@@ -0,0 +1,90 @@
+/* $NetBSD: ulfs_snapshot.c,v 1.1 2013/06/06 00:50:51 dholland Exp $ */
+/* from ffs_snapshot.c,v 1.122 2013/05/07 09:40:54 hannken Exp */
+
+/*
+ * Copyright 2000 Marshall Kirk McKusick. All Rights Reserved.
+ *
+ * Further information about snapshots can be obtained from:
+ *
+ * Marshall Kirk McKusick http://www.mckusick.com/softdep/
+ * 1614 Oxford Street mckusick%mckusick.com@localhost
+ * Berkeley, CA 94709-1608 +1-510-843-9542
+ * USA
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY MARSHALL KIRK MCKUSICK ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL MARSHALL KIRK MCKUSICK BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)ffs_snapshot.c 8.11 (McKusick) 7/23/00
+ *
+ * from FreeBSD: ffs_snapshot.c,v 1.79 2004/02/13 02:02:06 kuriyama Exp
+ */
+
+#include <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: ulfs_snapshot.c,v 1.1 2013/06/06 00:50:51 dholland Exp $");
+
+#if defined(_KERNEL_OPT)
+#include "opt_lfs.h"
+#endif
+
+#include <sys/param.h>
+#include <sys/kernel.h>
+#include <sys/systm.h>
+#include <sys/conf.h>
+#include <sys/buf.h>
+#include <sys/proc.h>
+#include <sys/namei.h>
+#include <sys/sched.h>
+#include <sys/stat.h>
+#include <sys/malloc.h>
+#include <sys/mount.h>
+#include <sys/resource.h>
+#include <sys/resourcevar.h>
+#include <sys/vnode.h>
+#include <sys/kauth.h>
+#include <sys/fstrans.h>
+#include <sys/wapbl.h>
+
+#include <miscfs/specfs/specdev.h>
+
+#include <ufs/lfs/ulfs_quotacommon.h>
+#include <ufs/lfs/ulfsmount.h>
+#include <ufs/lfs/ulfs_inode.h>
+#include <ufs/lfs/ulfs_extern.h>
+#include <ufs/lfs/ulfs_bswap.h>
+#include <ufs/lfs/ulfs_wapbl.h>
+
+#include <ufs/lfs/lfs.h>
+#include <ufs/lfs/lfs_extern.h>
+
+#include <uvm/uvm.h>
+
+/*
+ * Decrement extra reference on snapshot when last name is removed.
+ * It will not be freed until the last open reference goes away.
+ */
+void
+ulfs_snapgone(struct inode *ip)
+{
+ (void)ip;
+ /* just panic */
+ panic("reached ulfs_snapgone\n");
+}
Home |
Main Index |
Thread Index |
Old Index