ext2_vnops.c (68307) | ext2_vnops.c (76167) |
---|---|
1/* 2 * modified for EXT2FS support in Lites 1.1 3 * 4 * Aug 1995, Godmar Back (gback@cs.utah.edu) 5 * University of Utah, Department of Computer Science 6 */ 7/* 8 * Copyright (c) 1982, 1986, 1989, 1993 --- 29 unchanged lines hidden (view full) --- 38 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 39 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 40 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 41 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 42 * SUCH DAMAGE. 43 * 44 * @(#)ufs_vnops.c 8.27 (Berkeley) 5/27/95 45 * @(#)ext2_vnops.c 8.7 (Berkeley) 2/3/94 | 1/* 2 * modified for EXT2FS support in Lites 1.1 3 * 4 * Aug 1995, Godmar Back (gback@cs.utah.edu) 5 * University of Utah, Department of Computer Science 6 */ 7/* 8 * Copyright (c) 1982, 1986, 1989, 1993 --- 29 unchanged lines hidden (view full) --- 38 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 39 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 40 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 41 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 42 * SUCH DAMAGE. 43 * 44 * @(#)ufs_vnops.c 8.27 (Berkeley) 5/27/95 45 * @(#)ext2_vnops.c 8.7 (Berkeley) 2/3/94 |
46 * $FreeBSD: head/sys/gnu/fs/ext2fs/ext2_vnops.c 68307 2000-11-04 08:10:56Z bde $ | 46 * $FreeBSD: head/sys/gnu/fs/ext2fs/ext2_vnops.c 76167 2001-05-01 08:34:45Z phk $ |
47 */ 48 49#include "opt_quota.h" 50#include "opt_suiddir.h" 51 52#include <sys/param.h> 53#include <sys/systm.h> 54#include <sys/resourcevar.h> --- 32 unchanged lines hidden (view full) --- 87static int ext2_remove __P((struct vop_remove_args *)); 88static int ext2_link __P((struct vop_link_args *)); 89static int ext2_rename __P((struct vop_rename_args *)); 90static int ext2_mkdir __P((struct vop_mkdir_args *)); 91static int ext2_rmdir __P((struct vop_rmdir_args *)); 92static int ext2_create __P((struct vop_create_args *)); 93static int ext2_mknod __P((struct vop_mknod_args *)); 94static int ext2_symlink __P((struct vop_symlink_args *)); | 47 */ 48 49#include "opt_quota.h" 50#include "opt_suiddir.h" 51 52#include <sys/param.h> 53#include <sys/systm.h> 54#include <sys/resourcevar.h> --- 32 unchanged lines hidden (view full) --- 87static int ext2_remove __P((struct vop_remove_args *)); 88static int ext2_link __P((struct vop_link_args *)); 89static int ext2_rename __P((struct vop_rename_args *)); 90static int ext2_mkdir __P((struct vop_mkdir_args *)); 91static int ext2_rmdir __P((struct vop_rmdir_args *)); 92static int ext2_create __P((struct vop_create_args *)); 93static int ext2_mknod __P((struct vop_mknod_args *)); 94static int ext2_symlink __P((struct vop_symlink_args *)); |
95static int ext2_getpages __P((struct vop_getpages_args *)); 96static int ext2_putpages __P((struct vop_putpages_args *)); | |
97 98/* Global vfs data structures for ufs. */ 99vop_t **ext2_vnodeop_p; 100static struct vnodeopv_entry_desc ext2_vnodeop_entries[] = { 101 { &vop_default_desc, (vop_t *) ufs_vnoperate }, 102 { &vop_cachedlookup_desc, (vop_t *) ext2_lookup }, 103 { &vop_fsync_desc, (vop_t *) ext2_fsync }, 104 { &vop_inactive_desc, (vop_t *) ext2_inactive }, --- 5 unchanged lines hidden (view full) --- 110 { &vop_remove_desc, (vop_t *) ext2_remove }, 111 { &vop_link_desc, (vop_t *) ext2_link }, 112 { &vop_rename_desc, (vop_t *) ext2_rename }, 113 { &vop_mkdir_desc, (vop_t *) ext2_mkdir }, 114 { &vop_rmdir_desc, (vop_t *) ext2_rmdir }, 115 { &vop_create_desc, (vop_t *) ext2_create }, 116 { &vop_mknod_desc, (vop_t *) ext2_mknod }, 117 { &vop_symlink_desc, (vop_t *) ext2_symlink }, | 95 96/* Global vfs data structures for ufs. */ 97vop_t **ext2_vnodeop_p; 98static struct vnodeopv_entry_desc ext2_vnodeop_entries[] = { 99 { &vop_default_desc, (vop_t *) ufs_vnoperate }, 100 { &vop_cachedlookup_desc, (vop_t *) ext2_lookup }, 101 { &vop_fsync_desc, (vop_t *) ext2_fsync }, 102 { &vop_inactive_desc, (vop_t *) ext2_inactive }, --- 5 unchanged lines hidden (view full) --- 108 { &vop_remove_desc, (vop_t *) ext2_remove }, 109 { &vop_link_desc, (vop_t *) ext2_link }, 110 { &vop_rename_desc, (vop_t *) ext2_rename }, 111 { &vop_mkdir_desc, (vop_t *) ext2_mkdir }, 112 { &vop_rmdir_desc, (vop_t *) ext2_rmdir }, 113 { &vop_create_desc, (vop_t *) ext2_create }, 114 { &vop_mknod_desc, (vop_t *) ext2_mknod }, 115 { &vop_symlink_desc, (vop_t *) ext2_symlink }, |
118 { &vop_getpages_desc, (vop_t *) ext2_getpages }, 119 { &vop_putpages_desc, (vop_t *) ext2_putpages }, | |
120 { NULL, NULL } 121}; 122static struct vnodeopv_desc ext2fs_vnodeop_opv_desc = 123 { &ext2_vnodeop_p, ext2_vnodeop_entries }; 124 125vop_t **ext2_specop_p; 126static struct vnodeopv_entry_desc ext2_specop_entries[] = { 127 { &vop_default_desc, (vop_t *) ufs_vnoperatespec }, --- 1053 unchanged lines hidden (view full) --- 1181 * Write error occurred trying to update the inode 1182 * or the directory so must deallocate the inode. 1183 */ 1184 ip->i_nlink = 0; 1185 ip->i_flag |= IN_CHANGE; 1186 vput(tvp); 1187 return (error); 1188} | 116 { NULL, NULL } 117}; 118static struct vnodeopv_desc ext2fs_vnodeop_opv_desc = 119 { &ext2_vnodeop_p, ext2_vnodeop_entries }; 120 121vop_t **ext2_specop_p; 122static struct vnodeopv_entry_desc ext2_specop_entries[] = { 123 { &vop_default_desc, (vop_t *) ufs_vnoperatespec }, --- 1053 unchanged lines hidden (view full) --- 1177 * Write error occurred trying to update the inode 1178 * or the directory so must deallocate the inode. 1179 */ 1180 ip->i_nlink = 0; 1181 ip->i_flag |= IN_CHANGE; 1182 vput(tvp); 1183 return (error); 1184} |
1189 1190/* 1191 * get page routine 1192 * 1193 * XXX By default, wimp out... note that a_offset is ignored (and always 1194 * XXX has been). 1195 */ 1196static int 1197ext2_getpages(ap) 1198 struct vop_getpages_args *ap; 1199{ 1200 return (vnode_pager_generic_getpages(ap->a_vp, ap->a_m, ap->a_count, 1201 ap->a_reqpage)); 1202} 1203 1204/* 1205 * put page routine 1206 * 1207 * XXX By default, wimp out... note that a_offset is ignored (and always 1208 * XXX has been). 1209 */ 1210static int 1211ext2_putpages(ap) 1212 struct vop_putpages_args *ap; 1213{ 1214 return (vnode_pager_generic_putpages(ap->a_vp, ap->a_m, ap->a_count, 1215 ap->a_sync, ap->a_rtvals)); 1216} | |