summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1997-10-10 18:18:13 +0000
committerphk <phk@FreeBSD.org>1997-10-10 18:18:13 +0000
commitc0089963c1d9fa30e4a62aa5176c94d7e19676da (patch)
treed73bd8c571f0476ed7275749cae7d3ddb8f3cfa6 /sys
parenta10f019e7ef1fce4290d134a1a4977dd9558128d (diff)
downloadFreeBSD-src-c0089963c1d9fa30e4a62aa5176c94d7e19676da.zip
FreeBSD-src-c0089963c1d9fa30e4a62aa5176c94d7e19676da.tar.gz
Make ufs_reclaim free the underlying inode.
Diffstat (limited to 'sys')
-rw-r--r--sys/gnu/ext2fs/ext2_mount.h3
-rw-r--r--sys/gnu/fs/ext2fs/ext2_mount.h3
-rw-r--r--sys/ufs/ufs/ufs_extern.h4
-rw-r--r--sys/ufs/ufs/ufs_inode.c15
-rw-r--r--sys/ufs/ufs/ufsmount.h3
5 files changed, 19 insertions, 9 deletions
diff --git a/sys/gnu/ext2fs/ext2_mount.h b/sys/gnu/ext2fs/ext2_mount.h
index 168748a..2761f65 100644
--- a/sys/gnu/ext2fs/ext2_mount.h
+++ b/sys/gnu/ext2fs/ext2_mount.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ufsmount.h 8.6 (Berkeley) 3/30/95
- * $Id: ufsmount.h,v 1.7 1997/02/22 09:47:54 peter Exp $
+ * $Id: ufsmount.h,v 1.8 1997/09/22 21:24:03 joerg Exp $
*/
#ifndef _UFS_UFS_UFSMOUNT_H_
@@ -91,6 +91,7 @@ struct ufsmount {
char um_qflags[MAXQUOTAS]; /* quota specific flags */
struct netexport um_export; /* export information */
int64_t um_savedmaxfilesize; /* XXX - limit maxfilesize */
+ struct malloc_type *um_malloctype; /* The inodes malloctype */
};
/*
diff --git a/sys/gnu/fs/ext2fs/ext2_mount.h b/sys/gnu/fs/ext2fs/ext2_mount.h
index 168748a..2761f65 100644
--- a/sys/gnu/fs/ext2fs/ext2_mount.h
+++ b/sys/gnu/fs/ext2fs/ext2_mount.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ufsmount.h 8.6 (Berkeley) 3/30/95
- * $Id: ufsmount.h,v 1.7 1997/02/22 09:47:54 peter Exp $
+ * $Id: ufsmount.h,v 1.8 1997/09/22 21:24:03 joerg Exp $
*/
#ifndef _UFS_UFS_UFSMOUNT_H_
@@ -91,6 +91,7 @@ struct ufsmount {
char um_qflags[MAXQUOTAS]; /* quota specific flags */
struct netexport um_export; /* export information */
int64_t um_savedmaxfilesize; /* XXX - limit maxfilesize */
+ struct malloc_type *um_malloctype; /* The inodes malloctype */
};
/*
diff --git a/sys/ufs/ufs/ufs_extern.h b/sys/ufs/ufs/ufs_extern.h
index b4880ad..facffd7 100644
--- a/sys/ufs/ufs/ufs_extern.h
+++ b/sys/ufs/ufs/ufs_extern.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ufs_extern.h 8.10 (Berkeley) 5/14/95
- * $Id: ufs_extern.h,v 1.16 1997/08/26 07:32:50 phk Exp $
+ * $Id: ufs_extern.h,v 1.17 1997/09/14 02:58:10 peter Exp $
*/
#ifndef _UFS_UFS_EXTERN_H_
@@ -103,7 +103,7 @@ int ufs_pathconf __P((struct vop_pathconf_args *));
int ufs_print __P((struct vop_print_args *));
int ufs_readdir __P((struct vop_readdir_args *));
int ufs_readlink __P((struct vop_readlink_args *));
-int ufs_reclaim __P((struct vnode *, struct proc *));
+int ufs_reclaim __P((struct vop_reclaim_args *));
int ufs_remove __P((struct vop_remove_args *));
int ufs_rename __P((struct vop_rename_args *));
#define ufs_revoke vop_revoke
diff --git a/sys/ufs/ufs/ufs_inode.c b/sys/ufs/ufs/ufs_inode.c
index a4f3f6c..f35dc8c 100644
--- a/sys/ufs/ufs/ufs_inode.c
+++ b/sys/ufs/ufs/ufs_inode.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)ufs_inode.c 8.9 (Berkeley) 5/14/95
- * $Id: ufs_inode.c,v 1.14 1997/08/26 04:36:26 dyson Exp $
+ * $Id: ufs_inode.c,v 1.15 1997/09/02 20:06:57 bde Exp $
*/
#include "opt_quota.h"
@@ -44,9 +44,11 @@
#include <sys/param.h>
#include <sys/vnode.h>
#include <sys/mount.h>
+#include <sys/malloc.h>
#include <ufs/ufs/quota.h>
#include <ufs/ufs/inode.h>
+#include <ufs/ufs/ufsmount.h>
#include <ufs/ufs/ufs_extern.h>
u_long nextgennumber; /* Next generation number to assign. */
@@ -107,11 +109,14 @@ out:
* Reclaim an inode so that it can be used for other purposes.
*/
int
-ufs_reclaim(vp, p)
- struct vnode *vp;
- struct proc *p;
+ufs_reclaim(ap)
+ struct vop_reclaim_args /* {
+ struct vnode *a_vp;
+ struct proc *a_p;
+ } */ *ap;
{
register struct inode *ip;
+ register struct vnode *vp = ap->a_vp;
#ifdef QUOTA
int i;
#endif
@@ -139,5 +144,7 @@ ufs_reclaim(vp, p)
}
}
#endif
+ FREE(vp->v_data, VFSTOUFS(vp->v_mount)->um_malloctype);
+ vp->v_data = 0;
return (0);
}
diff --git a/sys/ufs/ufs/ufsmount.h b/sys/ufs/ufs/ufsmount.h
index 168748a..2761f65 100644
--- a/sys/ufs/ufs/ufsmount.h
+++ b/sys/ufs/ufs/ufsmount.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ufsmount.h 8.6 (Berkeley) 3/30/95
- * $Id: ufsmount.h,v 1.7 1997/02/22 09:47:54 peter Exp $
+ * $Id: ufsmount.h,v 1.8 1997/09/22 21:24:03 joerg Exp $
*/
#ifndef _UFS_UFS_UFSMOUNT_H_
@@ -91,6 +91,7 @@ struct ufsmount {
char um_qflags[MAXQUOTAS]; /* quota specific flags */
struct netexport um_export; /* export information */
int64_t um_savedmaxfilesize; /* XXX - limit maxfilesize */
+ struct malloc_type *um_malloctype; /* The inodes malloctype */
};
/*
OpenPOWER on IntegriCloud