Deleted Added
full compact
fs.h (139778) fs.h (149875)
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, 1993

--- 19 unchanged lines hidden (view full) ---

28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 * SUCH DAMAGE.
34 *
35 * @(#)fs.h 8.7 (Berkeley) 4/19/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, 1993

--- 19 unchanged lines hidden (view full) ---

28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 * SUCH DAMAGE.
34 *
35 * @(#)fs.h 8.7 (Berkeley) 4/19/94
36 * $FreeBSD: head/sys/gnu/fs/ext2fs/fs.h 139778 2005-01-06 18:27:30Z imp $
36 * $FreeBSD: head/sys/gnu/fs/ext2fs/fs.h 149875 2005-09-08 06:30:05Z truckman $
37 */
38
39/*
40 * Each disk drive contains some number of file systems.
41 * A file system consists of a number of cylinder groups.
42 * Each cylinder group has inodes and data.
43 *
44 * A file system is described by its super-block, which in turn

--- 100 unchanged lines hidden (view full) ---

145 * I think I'll try a VOP_LOCK/VOP_UNLOCK on the device vnode
146 */
147#define DEVVP(inode) (VFSTOEXT2(ITOV(inode)->v_mount)->um_devvp)
148#define lock_super(devvp) vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, curthread)
149#define unlock_super(devvp) VOP_UNLOCK(devvp, 0, curthread)
150
151/*
152 * Historically, ext2fs kept it's metadata buffers on the LOCKED queue. Now,
37 */
38
39/*
40 * Each disk drive contains some number of file systems.
41 * A file system consists of a number of cylinder groups.
42 * Each cylinder group has inodes and data.
43 *
44 * A file system is described by its super-block, which in turn

--- 100 unchanged lines hidden (view full) ---

145 * I think I'll try a VOP_LOCK/VOP_UNLOCK on the device vnode
146 */
147#define DEVVP(inode) (VFSTOEXT2(ITOV(inode)->v_mount)->um_devvp)
148#define lock_super(devvp) vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, curthread)
149#define unlock_super(devvp) VOP_UNLOCK(devvp, 0, curthread)
150
151/*
152 * Historically, ext2fs kept it's metadata buffers on the LOCKED queue. Now,
153 * we simply change the lock owner to kern so that it may be released from
154 * another context. Later, we release the buffer, and conditionally write it
155 * when we're done.
153 * we change the lock owner to kern so that we may use it from contexts other
154 * than the one that originally locked it. When we are finished with the
155 * buffer, we release it, writing it first if it was dirty.
156 */
156 */
157#define LCK_BUF(bp) BUF_KERNPROC(bp);
157#define LCK_BUF(bp) { \
158 (bp)->b_flags |= B_PERSISTENT; \
159 BUF_KERNPROC(bp); \
160}
158
159#define ULCK_BUF(bp) { \
160 long flags; \
161
162#define ULCK_BUF(bp) { \
163 long flags; \
161 int s; \
162 s = splbio(); \
163 flags = (bp)->b_flags; \
164 flags = (bp)->b_flags; \
164 (bp)->b_flags &= ~(B_DIRTY); \
165 splx(s); \
165 (bp)->b_flags &= ~(B_DIRTY | B_PERSISTENT); \
166 if (flags & B_DIRTY) \
167 bwrite(bp); \
168 else \
169 brelse(bp); \
170}
166 if (flags & B_DIRTY) \
167 bwrite(bp); \
168 else \
169 brelse(bp); \
170}