1 2 /* 3 * Copyright 1998 Marshall Kirk McKusick. All Rights Reserved. 4 * 5 * The soft updates code is derived from the appendix of a University 6 * of Michigan technical report (Gregory R. Ganger and Yale N. Patt, 7 * "Soft Updates: A Solution to the Metadata Update Problem in File 8 * Systems", CSE-TR-254-95, August 1995). 9 * 10 * Redistribution and use in source and binary forms, with or without 11 * modification, are permitted provided that the following conditions 12 * are met: 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 2. Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in the 17 * documentation and/or other materials provided with the distribution. 18 * 3. None of the names of McKusick, Ganger, or the University of Michigan 19 * may be used to endorse or promote products derived from this software 20 * without specific prior written permission. 21 * 22 * THIS SOFTWARE IS PROVIDED BY MARSHALL KIRK MCKUSICK ``AS IS'' AND 23 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25 * ARE DISCLAIMED. IN NO EVENT SHALL MARSHALL KIRK MCKUSICK BE LIABLE 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32 * SUCH DAMAGE. 33 * 34 * from: @(#)ffs_softdep_stub.c 9.1 (McKusick) 7/10/97 35 * $FreeBSD: src/sys/ufs/ffs/ffs_softdep_stub.c,v 1.7.2.1 2000/12/28 11:01:45 ps Exp $ 36 */ 37 38 /* 39 * Use this file as ffs_softdep.c if you do not wish the real ffs_softdep.c 40 * to be included in your system. (e.g for legal reasons ) 41 * The real files are in /usr/src/contrib/sys/softupdates. 42 * You must copy them here before you can use soft updates. 43 * Read the README for legal and technical information. 44 */ 45 46 #include "opt_ffs.h" 47 #ifndef SOFTUPDATES /* SOFTUPDATES not configured in, use these stubs. */ 48 #include <sys/param.h> 49 #include <sys/systm.h> 50 #include <sys/malloc.h> 51 #include <sys/vnode.h> 52 #include "quota.h" 53 #include "inode.h" 54 #include "ffs_extern.h" 55 #include "ufs_extern.h" 56 57 int __dead2 58 softdep_flushfiles(struct mount *oldmnt, int flags) 59 { 60 panic("softdep_flushfiles called"); 61 } 62 63 int 64 softdep_mount(struct vnode *devvp, struct mount *mp, struct fs *fs) 65 { 66 return (0); 67 } 68 69 void 70 softdep_initialize(void) 71 { 72 /* empty */ 73 } 74 75 void __dead2 76 softdep_setup_inomapdep(struct buf *bp, struct inode *ip, ino_t newinum) 77 { 78 panic("softdep_setup_inomapdep called"); 79 } 80 81 void __dead2 82 softdep_setup_blkmapdep(struct buf *bp, struct fs *fs, ufs_daddr_t newblkno) 83 { 84 panic("softdep_setup_blkmapdep called"); 85 } 86 87 void __dead2 88 softdep_setup_allocdirect(struct inode *ip, ufs_lbn_t lbn, 89 ufs_daddr_t newblkno, ufs_daddr_t oldblkno, 90 long newsize, long oldsize, struct buf *bp) 91 { 92 panic("softdep_setup_allocdirect called"); 93 } 94 95 void __dead2 96 softdep_setup_allocindir_page(struct inode *ip, ufs_lbn_t lbn, struct buf *bp, 97 int ptrno, ufs_daddr_t newblkno, 98 ufs_daddr_t oldblkno, struct buf *nbp) 99 { 100 panic("softdep_setup_allocindir_page called"); 101 } 102 103 void __dead2 104 softdep_setup_allocindir_meta(struct buf *nbp, struct inode *ip, struct buf *bp, 105 int ptrno, ufs_daddr_t newblkno) 106 { 107 panic("softdep_setup_allocindir_meta called"); 108 } 109 110 void __dead2 111 softdep_setup_freeblocks(struct inode *ip, off_t length) 112 { 113 panic("softdep_setup_freeblocks called"); 114 } 115 116 /* XXX needed to change this for FreeBSD.. hit poul */ 117 void __dead2 118 softdep_freefile(struct vnode *pvp, ino_t ino, int mode) 119 { 120 panic("softdep_freefile called"); 121 } 122 123 void __dead2 124 softdep_setup_directory_add(struct buf *bp, struct inode *dp, off_t diroffset, 125 ino_t newinum, struct buf *newdirbp) 126 { 127 panic("softdep_setup_directory_add called"); 128 } 129 130 void __dead2 131 softdep_change_directoryentry_offset(struct inode *dp, caddr_t base, 132 caddr_t oldloc, caddr_t newloc, 133 int entrysize) 134 { 135 panic("softdep_change_directoryentry_offset called"); 136 } 137 138 void __dead2 139 softdep_setup_remove(struct buf *bp, struct inode *dp, struct inode *ip, 140 int isrmdir) 141 { 142 panic("softdep_setup_remove called"); 143 } 144 145 void __dead2 146 softdep_setup_directory_change(struct buf *bp, struct inode *dp, 147 struct inode *ip, ino_t newinum, int isrmdir) 148 { 149 panic("softdep_setup_directory_change called"); 150 } 151 152 void __dead2 153 softdep_change_linkcnt(struct inode *ip) 154 { 155 panic("softdep_change_linkcnt called"); 156 } 157 158 void __dead2 159 softdep_load_inodeblock(struct inode *ip) 160 { 161 panic("softdep_load_inodeblock called"); 162 } 163 164 void __dead2 165 softdep_update_inodeblock(struct inode *ip, struct buf *bp, int waitfor) 166 { 167 panic("softdep_update_inodeblock called"); 168 } 169 170 void 171 softdep_fsync_mountdev(struct vnode *vp) 172 { 173 return; 174 } 175 176 /* 177 * softdep_sync_metadata(struct vnode *vp, struct thread *td) 178 */ 179 int 180 softdep_sync_metadata(struct vnode *vp, struct thread *td) 181 { 182 return (0); 183 } 184 185 int __dead2 186 softdep_slowdown(struct vnode *vp) 187 { 188 panic("softdep_slowdown called"); 189 } 190 #endif /* SOFTUPDATES not configured in */ 191