From 4de0ae322cb45ae3620fef3a8fcf76d44208ee44 Mon Sep 17 00:00:00 2001 From: jeff Date: Tue, 4 Mar 2003 00:04:44 +0000 Subject: - Add a new 'flags' parameter to getblk(). - Define one flag GB_LOCK_NOWAIT that tells getblk() to pass the LK_NOWAIT flag to the initial BUF_LOCK(). This will eventually be used in cases were we want to use a buffer only if it is not currently in use. - Convert all consumers of the getblk() api to use this extra parameter. Reviwed by: arch Not objected to by: mckusick --- sys/fs/hpfs/hpfs_alsubr.c | 2 +- sys/fs/hpfs/hpfs_subr.c | 4 ++-- sys/fs/hpfs/hpfs_vnops.c | 2 +- sys/fs/msdosfs/msdosfs_fat.c | 13 ++++++++----- sys/fs/msdosfs/msdosfs_vnops.c | 4 ++-- sys/fs/ntfs/ntfs_subr.c | 2 +- 6 files changed, 15 insertions(+), 12 deletions(-) (limited to 'sys/fs') diff --git a/sys/fs/hpfs/hpfs_alsubr.c b/sys/fs/hpfs/hpfs_alsubr.c index 07d928e..226865f 100644 --- a/sys/fs/hpfs/hpfs_alsubr.c +++ b/sys/fs/hpfs/hpfs_alsubr.c @@ -181,7 +181,7 @@ hpfs_allocalsec ( if (error) return (error); - bp = getblk(hpmp->hpm_devvp, lsn, DEV_BSIZE, 0, 0); + bp = getblk(hpmp->hpm_devvp, lsn, DEV_BSIZE, 0, 0, 0); clrbuf(bp); /* Fill AlSec info */ diff --git a/sys/fs/hpfs/hpfs_subr.c b/sys/fs/hpfs/hpfs_subr.c index b45ebbd..a547027 100644 --- a/sys/fs/hpfs/hpfs_subr.c +++ b/sys/fs/hpfs/hpfs_subr.c @@ -75,7 +75,7 @@ hpfs_bmdeinit( dprintf(("[%d: 0x%x] ", i, hpmp->hpm_bmind[i])); bp = getblk(hpmp->hpm_devvp, hpmp->hpm_bmind[i], - BMSIZE, 0, 0); + BMSIZE, 0, 0, 0); clrbuf(bp); bcopy(hpmp->hpm_bitmap + BMSIZE * i, bp->b_data, @@ -732,7 +732,7 @@ hpfs_update ( if (!(hp->h_flag & H_CHANGE)) return (0); - bp = getblk(hp->h_devvp, hp->h_no, FNODESIZE, 0, 0); + bp = getblk(hp->h_devvp, hp->h_no, FNODESIZE, 0, 0, 0); clrbuf(bp); bcopy (&hp->h_fn, bp->b_data, sizeof(struct fnode)); diff --git a/sys/fs/hpfs/hpfs_vnops.c b/sys/fs/hpfs/hpfs_vnops.c index 40649e1..51d445d 100644 --- a/sys/fs/hpfs/hpfs_vnops.c +++ b/sys/fs/hpfs/hpfs_vnops.c @@ -372,7 +372,7 @@ hpfs_write(ap) bn, runl, towrite, xfersz)); if ((off == 0) && (towrite == xfersz)) { - bp = getblk(hp->h_devvp, bn, xfersz, 0, 0); + bp = getblk(hp->h_devvp, bn, xfersz, 0, 0, 0); clrbuf(bp); } else { error = bread(hp->h_devvp, bn, xfersz, NOCRED, &bp); diff --git a/sys/fs/msdosfs/msdosfs_fat.c b/sys/fs/msdosfs/msdosfs_fat.c index c1b8a9d..1e9a3cf 100644 --- a/sys/fs/msdosfs/msdosfs_fat.c +++ b/sys/fs/msdosfs/msdosfs_fat.c @@ -398,7 +398,8 @@ updatefats(pmp, bp, fatbn) for (i = 1; i < pmp->pm_FATs; i++) { fatbn += pmp->pm_FATsecs; /* getblk() never fails */ - bpn = getblk(pmp->pm_devvp, fatbn, bp->b_bcount, 0, 0); + bpn = getblk(pmp->pm_devvp, fatbn, bp->b_bcount, + 0, 0, 0); bcopy(bp->b_data, bpn->b_data, bp->b_bcount); if (pmp->pm_flags & MSDOSFSMNT_WAITONFAT) bwrite(bpn); @@ -1074,11 +1075,13 @@ extendfile(dep, count, bpp, ncp, flags) * Get the buf header for the new block of the file. */ if (dep->de_Attributes & ATTR_DIRECTORY) - bp = getblk(pmp->pm_devvp, cntobn(pmp, cn++), - pmp->pm_bpcluster, 0, 0); + bp = getblk(pmp->pm_devvp, + cntobn(pmp, cn++), + pmp->pm_bpcluster, 0, 0, 0); else { - bp = getblk(DETOV(dep), de_cn2bn(pmp, frcn++), - pmp->pm_bpcluster, 0, 0); + bp = getblk(DETOV(dep), + de_cn2bn(pmp, frcn++), + pmp->pm_bpcluster, 0, 0, 0); /* * Do the bmap now, as in msdosfs_write */ diff --git a/sys/fs/msdosfs/msdosfs_vnops.c b/sys/fs/msdosfs/msdosfs_vnops.c index f54fc57..910ce7b 100644 --- a/sys/fs/msdosfs/msdosfs_vnops.c +++ b/sys/fs/msdosfs/msdosfs_vnops.c @@ -711,7 +711,7 @@ msdosfs_write(ap) * or we write the cluster from its start beyond EOF, * then no need to read data from disk. */ - bp = getblk(thisvp, bn, pmp->pm_bpcluster, 0, 0); + bp = getblk(thisvp, bn, pmp->pm_bpcluster, 0, 0, 0); clrbuf(bp); /* * Do the bmap now, since pcbmap needs buffers @@ -1301,7 +1301,7 @@ msdosfs_mkdir(ap) */ bn = cntobn(pmp, newcluster); /* always succeeds */ - bp = getblk(pmp->pm_devvp, bn, pmp->pm_bpcluster, 0, 0); + bp = getblk(pmp->pm_devvp, bn, pmp->pm_bpcluster, 0, 0, 0); bzero(bp->b_data, pmp->pm_bpcluster); bcopy(&dosdirtemplate, bp->b_data, sizeof dosdirtemplate); denp = (struct direntry *)bp->b_data; diff --git a/sys/fs/ntfs/ntfs_subr.c b/sys/fs/ntfs/ntfs_subr.c index 20b98a5..68f654f 100644 --- a/sys/fs/ntfs/ntfs_subr.c +++ b/sys/fs/ntfs/ntfs_subr.c @@ -1453,7 +1453,7 @@ ntfs_writentvattr_plain( if ((off == 0) && (tocopy == ntfs_cntob(cl))) { bp = getblk(ntmp->ntm_devvp, ntfs_cntobn(cn), - ntfs_cntob(cl), 0, 0); + ntfs_cntob(cl), 0, 0, 0); clrbuf(bp); } else { error = bread(ntmp->ntm_devvp, ntfs_cntobn(cn), -- cgit v1.1