summaryrefslogtreecommitdiffstats
path: root/sys/ufs
diff options
context:
space:
mode:
Diffstat (limited to 'sys/ufs')
-rw-r--r--sys/ufs/ffs/ffs_alloc.c4
-rw-r--r--sys/ufs/ffs/ffs_extern.h4
-rw-r--r--sys/ufs/ffs/ffs_inode.c33
-rw-r--r--sys/ufs/ffs/ffs_vfsops.c7
-rw-r--r--sys/ufs/ffs/ffs_vnops.c7
-rw-r--r--sys/ufs/lfs/lfs_extern.h4
-rw-r--r--sys/ufs/lfs/lfs_inode.c29
-rw-r--r--sys/ufs/lfs/lfs_vfsops.c7
-rw-r--r--sys/ufs/lfs/lfs_vnops.c7
-rw-r--r--sys/ufs/mfs/mfs_vnops.c23
-rw-r--r--sys/ufs/ufs/ufs_inode.c4
-rw-r--r--sys/ufs/ufs/ufs_readwrite.c4
-rw-r--r--sys/ufs/ufs/ufs_vnops.c100
-rw-r--r--sys/ufs/ufs/ufsmount.h4
14 files changed, 67 insertions, 170 deletions
diff --git a/sys/ufs/ffs/ffs_alloc.c b/sys/ufs/ffs/ffs_alloc.c
index 85ef1b6..7f8d84d 100644
--- a/sys/ufs/ffs/ffs_alloc.c
+++ b/sys/ufs/ffs/ffs_alloc.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ffs_alloc.c 8.18 (Berkeley) 5/26/95
- * $Id: ffs_alloc.c,v 1.39 1997/10/14 18:46:41 phk Exp $
+ * $Id: ffs_alloc.c,v 1.40 1997/10/16 10:49:19 phk Exp $
*/
#include "opt_quota.h"
@@ -486,7 +486,7 @@ ffs_reallocblks(ap)
ip->i_flag |= IN_CHANGE | IN_UPDATE;
if (!doasyncfree) {
gettime(&tv);
- VOP_UPDATE(vp, &tv, &tv, 1);
+ UFS_UPDATE(vp, &tv, &tv, 1);
}
}
if (ssize < len)
diff --git a/sys/ufs/ffs/ffs_extern.h b/sys/ufs/ffs/ffs_extern.h
index 4aa6118..38701c5 100644
--- a/sys/ufs/ffs/ffs_extern.h
+++ b/sys/ufs/ffs/ffs_extern.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ffs_extern.h 8.6 (Berkeley) 3/30/95
- * $Id: ffs_extern.h,v 1.18 1997/10/10 18:16:58 phk Exp $
+ * $Id: ffs_extern.h,v 1.19 1997/10/16 10:49:22 phk Exp $
*/
#ifndef _UFS_FFS_EXTERN_H
@@ -86,7 +86,7 @@ int ffs_statfs __P((struct mount *, struct statfs *, struct proc *));
int ffs_sync __P((struct mount *, int, struct ucred *, struct proc *));
int ffs_truncate __P((struct vnode *, off_t, int, struct ucred *, struct proc *));
int ffs_unmount __P((struct mount *, int, struct proc *));
-int ffs_update __P((struct vop_update_args *));
+int ffs_update __P((struct vnode *, struct timeval *, struct timeval *, int));
int ffs_valloc __P((struct vnode *, int, struct ucred *, struct vnode **));
int ffs_vfree __P((struct vnode *, ino_t, int));
diff --git a/sys/ufs/ffs/ffs_inode.c b/sys/ufs/ffs/ffs_inode.c
index 78cf65c..92bb2a7 100644
--- a/sys/ufs/ffs/ffs_inode.c
+++ b/sys/ufs/ffs/ffs_inode.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ffs_inode.c 8.13 (Berkeley) 4/21/95
- * $Id: ffs_inode.c,v 1.27 1997/09/02 20:06:44 bde Exp $
+ * $Id: ffs_inode.c,v 1.28 1997/10/16 10:49:28 phk Exp $
*/
#include "opt_quota.h"
@@ -50,6 +50,7 @@
#include <vm/vm_extern.h>
#include <ufs/ufs/quota.h>
+#include <ufs/ufs/ufsmount.h>
#include <ufs/ufs/inode.h>
#include <ufs/ffs/fs.h>
@@ -68,13 +69,11 @@ static int ffs_indirtrunc __P((struct inode *, ufs_daddr_t, ufs_daddr_t,
* write of the inode to complete.
*/
int
-ffs_update(ap)
- struct vop_update_args /* {
- struct vnode *a_vp;
- struct timeval *a_access;
- struct timeval *a_modify;
- int a_waitfor;
- } */ *ap;
+ffs_update(vp, access, modify, waitfor)
+ struct vnode *vp;
+ struct timeval *access;
+ struct timeval *modify;
+ int waitfor;
{
register struct fs *fs;
struct buf *bp;
@@ -82,8 +81,8 @@ ffs_update(ap)
int error;
time_t tv_sec;
- ip = VTOI(ap->a_vp);
- if (ap->a_vp->v_mount->mnt_flag & MNT_RDONLY) {
+ ip = VTOI(vp);
+ if (vp->v_mount->mnt_flag & MNT_RDONLY) {
ip->i_flag &=
~(IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE);
return (0);
@@ -106,10 +105,10 @@ ffs_update(ap)
tv_sec = time.tv_sec;
if (ip->i_flag & IN_ACCESS)
ip->i_atime =
- (ap->a_access == &time ? tv_sec : ap->a_access->tv_sec);
+ (access == &time ? tv_sec : access->tv_sec);
if (ip->i_flag & IN_UPDATE) {
ip->i_mtime =
- (ap->a_modify == &time ? tv_sec : ap->a_modify->tv_sec);
+ (modify == &time ? tv_sec : modify->tv_sec);
ip->i_modrev++;
}
if (ip->i_flag & IN_CHANGE)
@@ -132,7 +131,7 @@ ffs_update(ap)
}
*((struct dinode *)bp->b_data +
ino_to_fsbo(fs, ip->i_number)) = ip->i_din;
- if (ap->a_waitfor && (ap->a_vp->v_mount->mnt_flag & MNT_ASYNC) == 0)
+ if (waitfor && (vp->v_mount->mnt_flag & MNT_ASYNC) == 0)
return (bwrite(bp));
else {
bp->b_flags |= B_CLUSTEROK;
@@ -186,11 +185,11 @@ ffs_truncate(vp, length, flags, cred, p)
bzero((char *)&oip->i_shortlink, (u_int)oip->i_size);
oip->i_size = 0;
oip->i_flag |= IN_CHANGE | IN_UPDATE;
- return (VOP_UPDATE(ovp, &tv, &tv, 1));
+ return (UFS_UPDATE(ovp, &tv, &tv, 1));
}
if (oip->i_size == length) {
oip->i_flag |= IN_CHANGE | IN_UPDATE;
- return (VOP_UPDATE(ovp, &tv, &tv, 0));
+ return (UFS_UPDATE(ovp, &tv, &tv, 0));
}
#ifdef QUOTA
error = getinoquota(oip);
@@ -222,7 +221,7 @@ ffs_truncate(vp, length, flags, cred, p)
else
bawrite(bp);
oip->i_flag |= IN_CHANGE | IN_UPDATE;
- return (VOP_UPDATE(ovp, &tv, &tv, 1));
+ return (UFS_UPDATE(ovp, &tv, &tv, 1));
}
/*
* Shorten the size of the file. If the file is not being
@@ -280,7 +279,7 @@ ffs_truncate(vp, length, flags, cred, p)
for (i = NDADDR - 1; i > lastblock; i--)
oip->i_db[i] = 0;
oip->i_flag |= IN_CHANGE | IN_UPDATE;
- error = VOP_UPDATE(ovp, &tv, &tv, ((length > 0) ? 0 : 1));
+ error = UFS_UPDATE(ovp, &tv, &tv, ((length > 0) ? 0 : 1));
if (error)
allerror = error;
/*
diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c
index c053477..45d8a0f 100644
--- a/sys/ufs/ffs/ffs_vfsops.c
+++ b/sys/ufs/ffs/ffs_vfsops.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ffs_vfsops.c 8.31 (Berkeley) 5/20/95
- * $Id: ffs_vfsops.c,v 1.59 1997/10/12 20:26:12 phk Exp $
+ * $Id: ffs_vfsops.c,v 1.60 1997/10/16 10:49:33 phk Exp $
*/
#include "opt_quota.h"
@@ -557,6 +557,7 @@ ffs_mountfs(devvp, mp, p, malloctype)
M_WAITOK);
ump->um_blkatoff = ffs_blkatoff;
ump->um_truncate = ffs_truncate;
+ ump->um_update = ffs_update;
ump->um_valloc = ffs_valloc;
ump->um_vfree = ffs_vfree;
bcopy(bp->b_data, ump->um_fs, (u_int)fs->fs_sbsize);
@@ -877,8 +878,8 @@ loop:
simple_unlock(&mntvnode_slock);
simple_unlock(&vp->v_interlock);
gettime(&tv);
- /* VOP_UPDATE(vp, &tv, &tv, waitfor == MNT_WAIT); */
- VOP_UPDATE(vp, &tv, &tv, 0);
+ /* UFS_UPDATE(vp, &tv, &tv, waitfor == MNT_WAIT); */
+ UFS_UPDATE(vp, &tv, &tv, 0);
simple_lock(&mntvnode_slock);
}
}
diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c
index 254d5e5..7400ed5 100644
--- a/sys/ufs/ffs/ffs_vnops.c
+++ b/sys/ufs/ffs/ffs_vnops.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ffs_vnops.c 8.15 (Berkeley) 5/14/95
- * $Id: ffs_vnops.c,v 1.34 1997/10/15 13:23:47 phk Exp $
+ * $Id: ffs_vnops.c,v 1.35 1997/10/16 10:49:35 phk Exp $
*/
#include <sys/param.h>
@@ -77,7 +77,6 @@ static struct vnodeopv_entry_desc ffs_vnodeop_entries[] = {
{ &vop_getpages_desc, (vop_t *) ffs_getpages },
{ &vop_read_desc, (vop_t *) ffs_read },
{ &vop_reallocblks_desc, (vop_t *) ffs_reallocblks },
- { &vop_update_desc, (vop_t *) ffs_update },
{ &vop_write_desc, (vop_t *) ffs_write },
{ NULL, NULL }
};
@@ -88,7 +87,6 @@ vop_t **ffs_specop_p;
static struct vnodeopv_entry_desc ffs_specop_entries[] = {
{ &vop_default_desc, (vop_t *) ufs_vnoperatespec },
{ &vop_fsync_desc, (vop_t *) ffs_fsync },
- { &vop_update_desc, (vop_t *) ffs_update },
{ NULL, NULL }
};
static struct vnodeopv_desc ffs_specop_opv_desc =
@@ -98,7 +96,6 @@ vop_t **ffs_fifoop_p;
static struct vnodeopv_entry_desc ffs_fifoop_entries[] = {
{ &vop_default_desc, (vop_t *) ufs_vnoperatefifo },
{ &vop_fsync_desc, (vop_t *) ffs_fsync },
- { &vop_update_desc, (vop_t *) ffs_update },
{ NULL, NULL }
};
static struct vnodeopv_desc ffs_fifoop_opv_desc =
@@ -187,6 +184,6 @@ loop:
}
gettime(&tv);
- return (VOP_UPDATE(ap->a_vp, &tv, &tv, ap->a_waitfor == MNT_WAIT));
+ return (UFS_UPDATE(ap->a_vp, &tv, &tv, ap->a_waitfor == MNT_WAIT));
}
diff --git a/sys/ufs/lfs/lfs_extern.h b/sys/ufs/lfs/lfs_extern.h
index 030fedd..d930f4d 100644
--- a/sys/ufs/lfs/lfs_extern.h
+++ b/sys/ufs/lfs/lfs_extern.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)lfs_extern.h 8.6 (Berkeley) 5/8/95
- * $Id: lfs_extern.h,v 1.17 1997/10/12 20:26:15 phk Exp $
+ * $Id: lfs_extern.h,v 1.18 1997/10/16 10:49:44 phk Exp $
*/
#ifndef _UFS_LFS_LFS_EXTERN_H_
@@ -68,7 +68,7 @@ int lfs_segwrite __P((struct mount *, int));
#define lfs_sysctl ((int (*) __P((int *, u_int, void *, size_t *, void *, \
size_t, struct proc *)))eopnotsupp)
int lfs_truncate __P((struct vnode *, off_t, int, struct ucred *, struct proc *));
-int lfs_update __P((struct vop_update_args *));
+int lfs_update __P((struct vnode *, struct timeval *, struct timeval *, int));
void lfs_updatemeta __P((struct segment *));
int lfs_valloc __P((struct vnode *, int, struct ucred *, struct vnode **));
int lfs_vcreate __P((struct mount *, ino_t, struct vnode **));
diff --git a/sys/ufs/lfs/lfs_inode.c b/sys/ufs/lfs/lfs_inode.c
index 6b03151..39edcae 100644
--- a/sys/ufs/lfs/lfs_inode.c
+++ b/sys/ufs/lfs/lfs_inode.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)lfs_inode.c 8.9 (Berkeley) 5/8/95
- * $Id: lfs_inode.c,v 1.18 1997/09/02 20:06:48 bde Exp $
+ * $Id: lfs_inode.c,v 1.19 1997/10/16 10:49:47 phk Exp $
*/
#include "opt_quota.h"
@@ -73,15 +73,12 @@ lfs_ifind(fs, ino, dip)
}
int
-lfs_update(ap)
- struct vop_update_args /* {
- struct vnode *a_vp;
- struct timeval *a_access;
- struct timeval *a_modify;
- int a_waitfor;
- } */ *ap;
+lfs_update(vp, access, modify, waitfor)
+ struct vnode *vp;
+ struct timeval *access;
+ struct timeval *modify;
+ int waitfor;
{
- struct vnode *vp = ap->a_vp;
struct inode *ip;
int error;
@@ -104,9 +101,9 @@ lfs_update(ap)
return(0);
if (ip->i_flag & IN_ACCESS)
- ip->i_atime = ap->a_access->tv_sec;
+ ip->i_atime = access->tv_sec;
if (ip->i_flag & IN_UPDATE) {
- ip->i_mtime = ap->a_modify->tv_sec;
+ ip->i_mtime = modify->tv_sec;
(ip)->i_modrev++;
}
if (ip->i_flag & IN_CHANGE)
@@ -118,8 +115,8 @@ lfs_update(ap)
ip->i_flag |= IN_MODIFIED;
/* If sync, push back the vnode and any dirty blocks it may have. */
- error = (ap->a_waitfor & LFS_SYNC ? lfs_vflush(vp) : 0);
- if(ap->a_waitfor & LFS_SYNC && vp->v_dirtyblkhd.lh_first != NULL)
+ error = (waitfor & LFS_SYNC ? lfs_vflush(vp) : 0);
+ if(waitfor & LFS_SYNC && vp->v_dirtyblkhd.lh_first != NULL)
panic("lfs_update: dirty bufs");
return( error );
@@ -186,7 +183,7 @@ lfs_truncate(vp, length, flags, cred, p)
bzero((char *)&ip->i_shortlink, (u_int)ip->i_size);
ip->i_size = 0;
ip->i_flag |= IN_CHANGE | IN_UPDATE;
- return (VOP_UPDATE(vp, &tv, &tv, 0));
+ return (UFS_UPDATE(vp, &tv, &tv, 0));
}
vnode_pager_setsize(vp, (u_long)length);
@@ -195,7 +192,7 @@ lfs_truncate(vp, length, flags, cred, p)
/* If length is larger than the file, just update the times. */
if (ip->i_size <= length) {
ip->i_flag |= IN_CHANGE | IN_UPDATE;
- return (VOP_UPDATE(vp, &tv, &tv, 0));
+ return (UFS_UPDATE(vp, &tv, &tv, 0));
}
/*
@@ -376,6 +373,6 @@ lfs_truncate(vp, length, flags, cred, p)
fs->lfs_avail += fragstodb(fs, a_released);
e1 = vinvalbuf(vp, (length > 0) ? V_SAVE : 0, cred, p,
0, 0);
- e2 = VOP_UPDATE(vp, &tv, &tv, 0);
+ e2 = UFS_UPDATE(vp, &tv, &tv, 0);
return (e1 ? e1 : e2 ? e2 : 0);
}
diff --git a/sys/ufs/lfs/lfs_vfsops.c b/sys/ufs/lfs/lfs_vfsops.c
index aa54c28..c543639 100644
--- a/sys/ufs/lfs/lfs_vfsops.c
+++ b/sys/ufs/lfs/lfs_vfsops.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)lfs_vfsops.c 8.20 (Berkeley) 6/10/95
- * $Id: lfs_vfsops.c,v 1.24 1997/10/12 20:26:17 phk Exp $
+ * $Id: lfs_vfsops.c,v 1.25 1997/10/16 08:16:34 julian Exp $
*/
#include "opt_quota.h"
@@ -385,6 +385,11 @@ lfs_mountfs(devvp, mp, p)
ump = (struct ufsmount *)malloc(sizeof *ump, M_UFSMNT, M_WAITOK);
bzero(ump, sizeof *ump);
ump->um_malloctype = M_LFSNODE;
+ ump->um_blkatoff = lfs_blkatoff;
+ ump->um_truncate = lfs_truncate;
+ ump->um_update = lfs_update;
+ ump->um_valloc = lfs_valloc;
+ ump->um_vfree = lfs_vfree;
fs = ump->um_lfs = malloc(sizeof(struct lfs), M_UFSMNT, M_WAITOK);
bcopy(bp->b_data, fs, sizeof(struct lfs));
if (sizeof(struct lfs) < LFS_SBPAD) /* XXX why? */
diff --git a/sys/ufs/lfs/lfs_vnops.c b/sys/ufs/lfs/lfs_vnops.c
index a440b2b..fd383a7 100644
--- a/sys/ufs/lfs/lfs_vnops.c
+++ b/sys/ufs/lfs/lfs_vnops.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)lfs_vnops.c 8.13 (Berkeley) 6/10/95
- * $Id: lfs_vnops.c,v 1.27 1997/10/15 13:23:52 phk Exp $
+ * $Id: lfs_vnops.c,v 1.28 1997/10/16 10:49:53 phk Exp $
*/
#include <sys/param.h>
@@ -79,7 +79,6 @@ static struct vnodeopv_entry_desc lfs_vnodeop_entries[] = {
{ &vop_fsync_desc, (vop_t *) lfs_fsync },
{ &vop_getattr_desc, (vop_t *) lfs_getattr },
{ &vop_read_desc, (vop_t *) lfs_read },
- { &vop_update_desc, (vop_t *) lfs_update },
{ &vop_write_desc, (vop_t *) lfs_write },
{ &vop_lookup_desc, (vop_t *) ufs_lookup },
{ NULL, NULL }
@@ -92,7 +91,6 @@ static struct vnodeopv_entry_desc lfs_specop_entries[] = {
{ &vop_default_desc, (vop_t *) ufs_vnoperatespec },
{ &vop_bwrite_desc, (vop_t *) lfs_bwrite },
{ &vop_getattr_desc, (vop_t *) lfs_getattr },
- { &vop_update_desc, (vop_t *) lfs_update },
{ NULL, NULL }
};
static struct vnodeopv_desc lfs_specop_opv_desc =
@@ -103,7 +101,6 @@ static struct vnodeopv_entry_desc lfs_fifoop_entries[] = {
{ &vop_default_desc, (vop_t *) ufs_vnoperatefifo },
{ &vop_bwrite_desc, (vop_t *) lfs_bwrite },
{ &vop_getattr_desc, (vop_t *) lfs_getattr },
- { &vop_update_desc, (vop_t *) lfs_update },
{ NULL, NULL }
};
static struct vnodeopv_desc lfs_fifoop_opv_desc =
@@ -134,7 +131,7 @@ lfs_fsync(ap)
int error;
gettime(&tv);
- error = (VOP_UPDATE(ap->a_vp, &tv, &tv,
+ error = (UFS_UPDATE(ap->a_vp, &tv, &tv,
ap->a_waitfor == MNT_WAIT ? LFS_SYNC : 0));
if(ap->a_waitfor == MNT_WAIT && ap->a_vp->v_dirtyblkhd.lh_first != NULL)
panic("lfs_fsync: dirty bufs");
diff --git a/sys/ufs/mfs/mfs_vnops.c b/sys/ufs/mfs/mfs_vnops.c
index 0c552bd..1e09958 100644
--- a/sys/ufs/mfs/mfs_vnops.c
+++ b/sys/ufs/mfs/mfs_vnops.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)mfs_vnops.c 8.11 (Berkeley) 5/22/95
- * $Id: mfs_vnops.c,v 1.24 1997/10/15 13:23:57 phk Exp $
+ * $Id: mfs_vnops.c,v 1.25 1997/10/16 10:50:03 phk Exp $
*/
#include <sys/param.h>
@@ -56,7 +56,6 @@ static int mfs_badop __P((void));
static int mfs_bmap __P((struct vop_bmap_args *));
static int mfs_close __P((struct vop_close_args *));
static int mfs_fsync __P((struct vop_fsync_args *));
-static int mfs_ioctl __P((struct vop_ioctl_args *));
static int mfs_inactive __P((struct vop_inactive_args *)); /* XXX */
static int mfs_open __P((struct vop_open_args *));
static int mfs_print __P((struct vop_print_args *)); /* XXX */
@@ -71,7 +70,6 @@ static struct vnodeopv_entry_desc mfs_vnodeop_entries[] = {
{ &vop_close_desc, (vop_t *) mfs_close },
{ &vop_fsync_desc, (vop_t *) mfs_fsync },
{ &vop_inactive_desc, (vop_t *) mfs_inactive },
- { &vop_ioctl_desc, (vop_t *) mfs_ioctl },
{ &vop_islocked_desc, (vop_t *) vop_noislocked },
{ &vop_lock_desc, (vop_t *) vop_nolock },
{ &vop_open_desc, (vop_t *) mfs_open },
@@ -120,25 +118,6 @@ mfs_fsync(ap)
}
/*
- * Ioctl operation.
- */
-/* ARGSUSED */
-static int
-mfs_ioctl(ap)
- struct vop_ioctl_args /* {
- struct vnode *a_vp;
- int a_command;
- caddr_t a_data;
- int a_fflag;
- struct ucred *a_cred;
- struct proc *a_p;
- } */ *ap;
-{
-
- return (ENOTTY);
-}
-
-/*
* Pass I/O requests to the memory filesystem process.
*/
static int
diff --git a/sys/ufs/ufs/ufs_inode.c b/sys/ufs/ufs/ufs_inode.c
index e635f29..822d9df 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.18 1997/10/14 18:46:48 phk Exp $
+ * $Id: ufs_inode.c,v 1.19 1997/10/16 10:50:14 phk Exp $
*/
#include "opt_quota.h"
@@ -92,7 +92,7 @@ ufs_inactive(ap)
}
if (ip->i_flag & (IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE)) {
gettime(&tv);
- VOP_UPDATE(vp, &tv, &tv, 0);
+ UFS_UPDATE(vp, &tv, &tv, 0);
}
out:
VOP_UNLOCK(vp, 0, p);
diff --git a/sys/ufs/ufs/ufs_readwrite.c b/sys/ufs/ufs/ufs_readwrite.c
index afbe95f..f9f6d06 100644
--- a/sys/ufs/ufs/ufs_readwrite.c
+++ b/sys/ufs/ufs/ufs_readwrite.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)ufs_readwrite.c 8.11 (Berkeley) 5/8/95
- * $Id: ufs_readwrite.c,v 1.31 1997/09/27 13:40:20 kato Exp $
+ * $Id: ufs_readwrite.c,v 1.32 1997/10/16 10:50:21 phk Exp $
*/
#ifdef LFS_READWRITE
@@ -312,7 +312,7 @@ WRITE(ap)
}
} else if (resid > uio->uio_resid && (ioflag & IO_SYNC)) {
gettime(&tv);
- error = VOP_UPDATE(vp, &tv, &tv, 1);
+ error = UFS_UPDATE(vp, &tv, &tv, 1);
}
return (error);
}
diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c
index d653601..0a80e7f 100644
--- a/sys/ufs/ufs/ufs_vnops.c
+++ b/sys/ufs/ufs/ufs_vnops.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)ufs_vnops.c 8.27 (Berkeley) 5/27/95
- * $Id: ufs_vnops.c,v 1.60 1997/10/16 10:50:24 phk Exp $
+ * $Id: ufs_vnops.c,v 1.61 1997/10/16 11:59:09 phk Exp $
*/
#include "opt_quota.h"
@@ -73,7 +73,6 @@ static int ufs_chown __P((struct vnode *, uid_t, gid_t, struct ucred *, struct p
static int ufs_close __P((struct vop_close_args *));
static int ufs_create __P((struct vop_create_args *));
static int ufs_getattr __P((struct vop_getattr_args *));
-static int ufs_ioctl __P((struct vop_ioctl_args *));
static int ufs_islocked __P((struct vop_islocked_args *));
static int ufs_link __P((struct vop_link_args *));
static int ufs_lock __P((struct vop_lock_args *));
@@ -83,14 +82,12 @@ static int ufs_mkdir __P((struct vop_mkdir_args *));
static int ufs_mknod __P((struct vop_mknod_args *));
static int ufs_mmap __P((struct vop_mmap_args *));
static int ufs_open __P((struct vop_open_args *));
-static int ufs_pathconf __P((struct vop_pathconf_args *));
static int ufs_print __P((struct vop_print_args *));
static int ufs_readdir __P((struct vop_readdir_args *));
static int ufs_readlink __P((struct vop_readlink_args *));
static int ufs_remove __P((struct vop_remove_args *));
static int ufs_rename __P((struct vop_rename_args *));
static int ufs_rmdir __P((struct vop_rmdir_args *));
-static int ufs_seek __P((struct vop_seek_args *));
static int ufs_setattr __P((struct vop_setattr_args *));
static int ufs_strategy __P((struct vop_strategy_args *));
static int ufs_symlink __P((struct vop_symlink_args *));
@@ -468,7 +465,7 @@ ufs_setattr(ap)
atimeval.tv_usec = vap->va_atime.tv_nsec / 1000;
mtimeval.tv_sec = vap->va_mtime.tv_sec;
mtimeval.tv_usec = vap->va_mtime.tv_nsec / 1000;
- error = VOP_UPDATE(vp, &atimeval, &mtimeval, 1);
+ error = UFS_UPDATE(vp, &atimeval, &mtimeval, 1);
if (error)
return (error);
}
@@ -616,22 +613,6 @@ good:
return (0);
}
-/* ARGSUSED */
-int
-ufs_ioctl(ap)
- struct vop_ioctl_args /* {
- struct vnode *a_vp;
- int a_command;
- caddr_t a_data;
- int a_fflag;
- struct ucred *a_cred;
- struct proc *a_p;
- } */ *ap;
-{
-
- return (ENOTTY);
-}
-
/*
* Mmap a file
*
@@ -651,25 +632,6 @@ ufs_mmap(ap)
return (EINVAL);
}
-/*
- * Seek on a file
- *
- * Nothing to do, so just return.
- */
-/* ARGSUSED */
-int
-ufs_seek(ap)
- struct vop_seek_args /* {
- struct vnode *a_vp;
- off_t a_oldoff;
- off_t a_newoff;
- struct ucred *a_cred;
- } */ *ap;
-{
-
- return (0);
-}
-
int
ufs_remove(ap)
struct vop_remove_args /* {
@@ -757,7 +719,7 @@ ufs_link(ap)
ip->i_nlink++;
ip->i_flag |= IN_CHANGE;
gettime(&tv);
- error = VOP_UPDATE(vp, &tv, &tv, 1);
+ error = UFS_UPDATE(vp, &tv, &tv, 1);
if (!error) {
#ifdef EXT2FS
if (IS_EXT2_VNODE(tdvp)) {
@@ -1016,7 +978,7 @@ abortit:
ip->i_nlink++;
ip->i_flag |= IN_CHANGE;
gettime(&tv);
- if (error = VOP_UPDATE(fvp, &tv, &tv, 1)) {
+ if (error = UFS_UPDATE(fvp, &tv, &tv, 1)) {
VOP_UNLOCK(fvp, 0, p);
goto bad;
}
@@ -1085,7 +1047,7 @@ abortit:
}
dp->i_nlink++;
dp->i_flag |= IN_CHANGE;
- error = VOP_UPDATE(tdvp, &tv, &tv, 1);
+ error = UFS_UPDATE(tdvp, &tv, &tv, 1);
if (error)
goto bad;
}
@@ -1102,7 +1064,7 @@ abortit:
if (doingdirectory && newparent) {
dp->i_nlink--;
dp->i_flag |= IN_CHANGE;
- (void)VOP_UPDATE(tdvp, &tv, &tv, 1);
+ (void)UFS_UPDATE(tdvp, &tv, &tv, 1);
}
goto bad;
}
@@ -1390,7 +1352,7 @@ ufs_mkdir(ap)
if (cnp->cn_flags & ISWHITEOUT)
ip->i_flags |= UF_OPAQUE;
gettime(&tv);
- error = VOP_UPDATE(tvp, &tv, &tv, 1);
+ error = UFS_UPDATE(tvp, &tv, &tv, 1);
/*
* Bump link count in parent directory
@@ -1400,7 +1362,7 @@ ufs_mkdir(ap)
*/
dp->i_nlink++;
dp->i_flag |= IN_CHANGE;
- error = VOP_UPDATE(dvp, &tv, &tv, 1);
+ error = UFS_UPDATE(dvp, &tv, &tv, 1);
if (error)
goto bad;
@@ -1990,43 +1952,6 @@ ufsfifo_close(ap)
}
/*
- * Return POSIX pathconf information applicable to ufs filesystems.
- */
-int
-ufs_pathconf(ap)
- struct vop_pathconf_args /* {
- struct vnode *a_vp;
- int a_name;
- int *a_retval;
- } */ *ap;
-{
-
- switch (ap->a_name) {
- case _PC_LINK_MAX:
- *ap->a_retval = LINK_MAX;
- return (0);
- case _PC_NAME_MAX:
- *ap->a_retval = NAME_MAX;
- return (0);
- case _PC_PATH_MAX:
- *ap->a_retval = PATH_MAX;
- return (0);
- case _PC_PIPE_BUF:
- *ap->a_retval = PIPE_BUF;
- return (0);
- case _PC_CHOWN_RESTRICTED:
- *ap->a_retval = 1;
- return (0);
- case _PC_NO_TRUNC:
- *ap->a_retval = 1;
- return (0);
- default:
- return (EINVAL);
- }
- /* NOTREACHED */
-}
-
-/*
* Advisory record locking support
*/
int
@@ -2159,7 +2084,7 @@ ufs_makeinode(mode, dvp, vpp, cnp)
* Make sure inode goes to disk before directory entry.
*/
gettime(&tv);
- error = VOP_UPDATE(tvp, &tv, &tv, 1);
+ error = UFS_UPDATE(tvp, &tv, &tv, 1);
if (error)
goto bad;
#ifdef EXT2FS
@@ -2211,7 +2136,6 @@ static struct vnodeopv_entry_desc ufs_vnodeop_entries[] = {
{ &vop_getpages_desc, (vop_t *) ufs_missingop },
{ &vop_read_desc, (vop_t *) ufs_missingop },
{ &vop_reallocblks_desc, (vop_t *) ufs_missingop },
- { &vop_update_desc, (vop_t *) ufs_missingop },
{ &vop_write_desc, (vop_t *) ufs_missingop },
{ &vop_abortop_desc, (vop_t *) ufs_abortop },
{ &vop_access_desc, (vop_t *) ufs_access },
@@ -2222,7 +2146,6 @@ static struct vnodeopv_entry_desc ufs_vnodeop_entries[] = {
{ &vop_create_desc, (vop_t *) ufs_create },
{ &vop_getattr_desc, (vop_t *) ufs_getattr },
{ &vop_inactive_desc, (vop_t *) ufs_inactive },
- { &vop_ioctl_desc, (vop_t *) ufs_ioctl },
{ &vop_islocked_desc, (vop_t *) ufs_islocked },
{ &vop_link_desc, (vop_t *) ufs_link },
{ &vop_lock_desc, (vop_t *) ufs_lock },
@@ -2231,7 +2154,7 @@ static struct vnodeopv_entry_desc ufs_vnodeop_entries[] = {
{ &vop_mknod_desc, (vop_t *) ufs_mknod },
{ &vop_mmap_desc, (vop_t *) ufs_mmap },
{ &vop_open_desc, (vop_t *) ufs_open },
- { &vop_pathconf_desc, (vop_t *) ufs_pathconf },
+ { &vop_pathconf_desc, (vop_t *) vop_stdpathconf },
{ &vop_print_desc, (vop_t *) ufs_print },
{ &vop_readdir_desc, (vop_t *) ufs_readdir },
{ &vop_readlink_desc, (vop_t *) ufs_readlink },
@@ -2239,7 +2162,6 @@ static struct vnodeopv_entry_desc ufs_vnodeop_entries[] = {
{ &vop_remove_desc, (vop_t *) ufs_remove },
{ &vop_rename_desc, (vop_t *) ufs_rename },
{ &vop_rmdir_desc, (vop_t *) ufs_rmdir },
- { &vop_seek_desc, (vop_t *) ufs_seek },
{ &vop_setattr_desc, (vop_t *) ufs_setattr },
{ &vop_strategy_desc, (vop_t *) ufs_strategy },
{ &vop_symlink_desc, (vop_t *) ufs_symlink },
@@ -2254,7 +2176,6 @@ vop_t **ufs_specop_p;
static struct vnodeopv_entry_desc ufs_specop_entries[] = {
{ &vop_default_desc, (vop_t *) spec_vnoperate },
{ &vop_fsync_desc, (vop_t *) ufs_missingop },
- { &vop_update_desc, (vop_t *) ufs_missingop },
{ &vop_access_desc, (vop_t *) ufs_access },
{ &vop_close_desc, (vop_t *) ufsspec_close },
{ &vop_getattr_desc, (vop_t *) ufs_getattr },
@@ -2276,7 +2197,6 @@ vop_t **ufs_fifoop_p;
static struct vnodeopv_entry_desc ufs_fifoop_entries[] = {
{ &vop_default_desc, (vop_t *) fifo_vnoperate },
{ &vop_fsync_desc, (vop_t *) ufs_missingop },
- { &vop_update_desc, (vop_t *) ufs_missingop },
{ &vop_access_desc, (vop_t *) ufs_access },
{ &vop_close_desc, (vop_t *) ufsfifo_close },
{ &vop_getattr_desc, (vop_t *) ufs_getattr },
diff --git a/sys/ufs/ufs/ufsmount.h b/sys/ufs/ufs/ufsmount.h
index 50bfe57..ee79631 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.10 1997/10/12 20:26:28 phk Exp $
+ * $Id: ufsmount.h,v 1.11 1997/10/16 10:50:27 phk Exp $
*/
#ifndef _UFS_UFS_UFSMOUNT_H_
@@ -99,12 +99,14 @@ struct ufsmount {
struct malloc_type *um_malloctype; /* The inodes malloctype */
int (*um_blkatoff) __P((struct vnode *, off_t, char **, struct buf **));
int (*um_truncate) __P((struct vnode *, off_t, int, struct ucred *, struct proc *));
+ int (*um_update) __P((struct vnode *, struct timeval *, struct timeval *, int));
int (*um_valloc) __P((struct vnode *, int, struct ucred *, struct vnode **));
int (*um_vfree) __P((struct vnode *, ino_t, int));
};
#define UFS_BLKATOFF(aa, bb, cc, dd) VFSTOUFS((aa)->v_mount)->um_blkatoff(aa, bb, cc, dd)
#define UFS_TRUNCATE(aa, bb, cc, dd, ee) VFSTOUFS((aa)->v_mount)->um_truncate(aa, bb, cc, dd, ee)
+#define UFS_UPDATE(aa, bb, cc, dd) VFSTOUFS((aa)->v_mount)->um_update(aa, bb, cc, dd)
#define UFS_VALLOC(aa, bb, cc, dd) VFSTOUFS((aa)->v_mount)->um_valloc(aa, bb, cc, dd)
#define UFS_VFREE(aa, bb, cc) VFSTOUFS((aa)->v_mount)->um_vfree(aa, bb, cc)
OpenPOWER on IntegriCloud