Changeset View
Changeset View
Standalone View
Standalone View
sys/ufs/ffs/ffs_snapshot.c
Show First 20 Lines • Show All 57 Lines • ▼ Show 20 Lines | |||||
#include <sys/resourcevar.h> | #include <sys/resourcevar.h> | ||||
#include <sys/rwlock.h> | #include <sys/rwlock.h> | ||||
#include <sys/vnode.h> | #include <sys/vnode.h> | ||||
#include <vm/vm.h> | #include <vm/vm.h> | ||||
#include <vm/vm_extern.h> | #include <vm/vm_extern.h> | ||||
#include <geom/geom.h> | #include <geom/geom.h> | ||||
#include <geom/geom_vfs.h> | |||||
#include <ufs/ufs/extattr.h> | #include <ufs/ufs/extattr.h> | ||||
#include <ufs/ufs/quota.h> | #include <ufs/ufs/quota.h> | ||||
#include <ufs/ufs/ufsmount.h> | #include <ufs/ufs/ufsmount.h> | ||||
#include <ufs/ufs/inode.h> | #include <ufs/ufs/inode.h> | ||||
#include <ufs/ufs/ufs_extern.h> | #include <ufs/ufs/ufs_extern.h> | ||||
#include <ufs/ffs/fs.h> | #include <ufs/ffs/fs.h> | ||||
▲ Show 20 Lines • Show All 2,475 Lines • ▼ Show 20 Lines | |||||
*/ | */ | ||||
static int | static int | ||||
readblock(vp, bp, lbn) | readblock(vp, bp, lbn) | ||||
struct vnode *vp; | struct vnode *vp; | ||||
struct buf *bp; | struct buf *bp; | ||||
ufs2_daddr_t lbn; | ufs2_daddr_t lbn; | ||||
{ | { | ||||
struct inode *ip; | struct inode *ip; | ||||
struct bio *bip; | |||||
struct fs *fs; | struct fs *fs; | ||||
ip = VTOI(vp); | ip = VTOI(vp); | ||||
fs = ITOFS(ip); | fs = ITOFS(ip); | ||||
bip = g_alloc_bio(); | bp->b_iocmd = BIO_READ; | ||||
bip->bio_cmd = BIO_READ; | bp->b_iooffset = dbtob(fsbtodb(fs, blkstofrags(fs, lbn))); | ||||
bip->bio_offset = dbtob(fsbtodb(fs, blkstofrags(fs, lbn))); | bp->b_iodone = bdone; | ||||
bip->bio_data = bp->b_data; | g_vfs_strategy(&ITODEVVP(ip)->v_bufobj, bp); | ||||
bip->bio_length = bp->b_bcount; | bufwait(bp); | ||||
bip->bio_done = NULL; | |||||
g_io_request(bip, ITODEVVP(ip)->v_bufobj.bo_private); | |||||
bp->b_error = biowait(bip, "snaprdb"); | |||||
g_destroy_bio(bip); | |||||
return (bp->b_error); | return (bp->b_error); | ||||
} | } | ||||
#endif | #endif | ||||
/* | /* | ||||
* Process file deletes that were deferred by ufs_inactive() due to | * Process file deletes that were deferred by ufs_inactive() due to | ||||
* the file system being suspended. Transfer IN_LAZYACCESS into | * the file system being suspended. Transfer IN_LAZYACCESS into | ||||
▲ Show 20 Lines • Show All 173 Lines • Show Last 20 Lines |