diff options
author | cracauer <cracauer@FreeBSD.org> | 2005-10-28 18:39:00 +0000 |
---|---|---|
committer | cracauer <cracauer@FreeBSD.org> | 2005-10-28 18:39:00 +0000 |
commit | d7ae0b2c661420a42cc63ea5a86ad7d1c14476e1 (patch) | |
tree | ed99d58fffbc35f53c8ff694e7828768ecbda9a8 /sys/gnu | |
parent | 21aa82a5ae17d4a50a4fa35697043c3434de308a (diff) | |
download | FreeBSD-src-d7ae0b2c661420a42cc63ea5a86ad7d1c14476e1.zip FreeBSD-src-d7ae0b2c661420a42cc63ea5a86ad7d1c14476e1.tar.gz |
Fix this:
kern/87959 cracauer ext2fs: no cp(1) possible, mmap returns EINVAL
ext2fs was missing vnode_create_vobject.
(Reisefs probably has the same problem but I want to get this in quick
for 6-release)
Diffstat (limited to 'sys/gnu')
-rw-r--r-- | sys/gnu/fs/ext2fs/ext2_vnops.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/gnu/fs/ext2fs/ext2_vnops.c b/sys/gnu/fs/ext2fs/ext2_vnops.c index 30d3d57..4a8482e 100644 --- a/sys/gnu/fs/ext2fs/ext2_vnops.c +++ b/sys/gnu/fs/ext2fs/ext2_vnops.c @@ -237,9 +237,8 @@ ext2_create(ap) /* * Open called. - * - * Nothing to do. */ + static int ext2_open(ap) struct vop_open_args /* { @@ -249,6 +248,8 @@ ext2_open(ap) struct thread *a_td; } */ *ap; { + struct vnode *vp = ap->a_vp; + struct inode *ip = VTOI(vp); if (ap->a_vp->v_type == VBLK || ap->a_vp->v_type == VCHR) return (EOPNOTSUPP); @@ -259,6 +260,9 @@ ext2_open(ap) if ((VTOI(ap->a_vp)->i_flags & APPEND) && (ap->a_mode & (FWRITE | O_APPEND)) == FWRITE) return (EPERM); + + vnode_create_vobject(ap->a_vp, ip->i_size, ap->a_td); + return (0); } |