Commit 1463079f authored by Christoph Hellwig's avatar Christoph Hellwig

[XFS] really kill the pagebuf vs xfs_buf confusion

SGI Modid: xfs-linux:xfs-kern:167628a
parent b2d94fa0
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
* The page_buf module provides an abstract buffer cache model on top of * The page_buf module provides an abstract buffer cache model on top of
* the Linux page cache. Cached metadata blocks for a file system are * the Linux page cache. Cached metadata blocks for a file system are
* hashed to the inode for the block device. The page_buf module * hashed to the inode for the block device. The page_buf module
* assembles buffer (page_buf_t) objects on demand to aggregate such * assembles buffer (xfs_buf_t) objects on demand to aggregate such
* cached pages for I/O. * cached pages for I/O.
* *
* *
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
STATIC kmem_cache_t *pagebuf_cache; STATIC kmem_cache_t *pagebuf_cache;
STATIC void pagebuf_daemon_wakeup(void); STATIC void pagebuf_daemon_wakeup(void);
STATIC void pagebuf_delwri_queue(page_buf_t *, int); STATIC void pagebuf_delwri_queue(xfs_buf_t *, int);
STATIC struct workqueue_struct *pagebuf_logio_workqueue; STATIC struct workqueue_struct *pagebuf_logio_workqueue;
STATIC struct workqueue_struct *pagebuf_dataio_workqueue; STATIC struct workqueue_struct *pagebuf_dataio_workqueue;
...@@ -82,7 +82,7 @@ STATIC struct workqueue_struct *pagebuf_dataio_workqueue; ...@@ -82,7 +82,7 @@ STATIC struct workqueue_struct *pagebuf_dataio_workqueue;
#ifdef PAGEBUF_TRACE #ifdef PAGEBUF_TRACE
void void
pagebuf_trace( pagebuf_trace(
page_buf_t *pb, xfs_buf_t *pb,
char *id, char *id,
void *data, void *data,
void *ra) void *ra)
...@@ -169,7 +169,7 @@ _bhash( ...@@ -169,7 +169,7 @@ _bhash(
* Mapping of multi-page buffers into contiguous virtual space * Mapping of multi-page buffers into contiguous virtual space
*/ */
STATIC void *pagebuf_mapout_locked(page_buf_t *); STATIC void *pagebuf_mapout_locked(xfs_buf_t *);
typedef struct a_list { typedef struct a_list {
void *vm_addr; void *vm_addr;
...@@ -229,8 +229,8 @@ purge_addresses(void) ...@@ -229,8 +229,8 @@ purge_addresses(void)
STATIC void STATIC void
_pagebuf_initialize( _pagebuf_initialize(
page_buf_t *pb, xfs_buf_t *pb,
pb_target_t *target, xfs_buftarg_t *target,
loff_t range_base, loff_t range_base,
size_t range_length, size_t range_length,
page_buf_flags_t flags) page_buf_flags_t flags)
...@@ -240,7 +240,7 @@ _pagebuf_initialize( ...@@ -240,7 +240,7 @@ _pagebuf_initialize(
*/ */
flags &= ~(PBF_LOCK|PBF_MAPPED|PBF_DONT_BLOCK|PBF_READ_AHEAD); flags &= ~(PBF_LOCK|PBF_MAPPED|PBF_DONT_BLOCK|PBF_READ_AHEAD);
memset(pb, 0, sizeof(page_buf_t)); memset(pb, 0, sizeof(xfs_buf_t));
atomic_set(&pb->pb_hold, 1); atomic_set(&pb->pb_hold, 1);
init_MUTEX_LOCKED(&pb->pb_iodonesema); init_MUTEX_LOCKED(&pb->pb_iodonesema);
INIT_LIST_HEAD(&pb->pb_list); INIT_LIST_HEAD(&pb->pb_list);
...@@ -256,7 +256,7 @@ _pagebuf_initialize( ...@@ -256,7 +256,7 @@ _pagebuf_initialize(
*/ */
pb->pb_buffer_length = pb->pb_count_desired = range_length; pb->pb_buffer_length = pb->pb_count_desired = range_length;
pb->pb_flags = flags | PBF_NONE; pb->pb_flags = flags | PBF_NONE;
pb->pb_bn = PAGE_BUF_DADDR_NULL; pb->pb_bn = XFS_BUF_DADDR_NULL;
atomic_set(&pb->pb_pin_count, 0); atomic_set(&pb->pb_pin_count, 0);
init_waitqueue_head(&pb->pb_waiters); init_waitqueue_head(&pb->pb_waiters);
...@@ -270,7 +270,7 @@ _pagebuf_initialize( ...@@ -270,7 +270,7 @@ _pagebuf_initialize(
*/ */
STATIC int STATIC int
_pagebuf_get_pages( _pagebuf_get_pages(
page_buf_t *pb, xfs_buf_t *pb,
int page_count, int page_count,
page_buf_flags_t flags) page_buf_flags_t flags)
{ {
...@@ -296,7 +296,7 @@ _pagebuf_get_pages( ...@@ -296,7 +296,7 @@ _pagebuf_get_pages(
*/ */
STATIC inline void STATIC inline void
_pagebuf_freepages( _pagebuf_freepages(
page_buf_t *pb) xfs_buf_t *pb)
{ {
int buf_index; int buf_index;
...@@ -318,7 +318,7 @@ _pagebuf_freepages( ...@@ -318,7 +318,7 @@ _pagebuf_freepages(
*/ */
void void
pagebuf_free( pagebuf_free(
page_buf_t *pb) xfs_buf_t *pb)
{ {
PB_TRACE(pb, "free", 0); PB_TRACE(pb, "free", 0);
...@@ -367,7 +367,7 @@ pagebuf_free( ...@@ -367,7 +367,7 @@ pagebuf_free(
*/ */
STATIC int STATIC int
_pagebuf_lookup_pages( _pagebuf_lookup_pages(
page_buf_t *pb, xfs_buf_t *pb,
struct address_space *aspace, struct address_space *aspace,
page_buf_flags_t flags) page_buf_flags_t flags)
{ {
...@@ -531,20 +531,20 @@ _pagebuf_lookup_pages( ...@@ -531,20 +531,20 @@ _pagebuf_lookup_pages(
* which may imply that this call will block until those buffers * which may imply that this call will block until those buffers
* are unlocked. No I/O is implied by this call. * are unlocked. No I/O is implied by this call.
*/ */
STATIC page_buf_t * STATIC xfs_buf_t *
_pagebuf_find( /* find buffer for block */ _pagebuf_find( /* find buffer for block */
pb_target_t *target,/* target for block */ xfs_buftarg_t *target,/* target for block */
loff_t ioff, /* starting offset of range */ loff_t ioff, /* starting offset of range */
size_t isize, /* length of range */ size_t isize, /* length of range */
page_buf_flags_t flags, /* PBF_TRYLOCK */ page_buf_flags_t flags, /* PBF_TRYLOCK */
page_buf_t *new_pb)/* newly allocated buffer */ xfs_buf_t *new_pb)/* newly allocated buffer */
{ {
loff_t range_base; loff_t range_base;
size_t range_length; size_t range_length;
int hval; int hval;
pb_hash_t *h; pb_hash_t *h;
struct list_head *p; struct list_head *p;
page_buf_t *pb; xfs_buf_t *pb;
int not_locked; int not_locked;
range_base = (ioff << BBSHIFT); range_base = (ioff << BBSHIFT);
...@@ -561,7 +561,7 @@ _pagebuf_find( /* find buffer for block */ ...@@ -561,7 +561,7 @@ _pagebuf_find( /* find buffer for block */
spin_lock(&h->pb_hash_lock); spin_lock(&h->pb_hash_lock);
list_for_each(p, &h->pb_hash) { list_for_each(p, &h->pb_hash) {
pb = list_entry(p, page_buf_t, pb_hash_list); pb = list_entry(p, xfs_buf_t, pb_hash_list);
if (pb->pb_target == target && if (pb->pb_target == target &&
pb->pb_file_offset == range_base && pb->pb_file_offset == range_base &&
...@@ -641,10 +641,10 @@ _pagebuf_find( /* find buffer for block */ ...@@ -641,10 +641,10 @@ _pagebuf_find( /* find buffer for block */
* pages are present in the buffer, not all of every page may be * pages are present in the buffer, not all of every page may be
* valid. * valid.
*/ */
page_buf_t * xfs_buf_t *
pagebuf_find( /* find buffer for block */ pagebuf_find( /* find buffer for block */
/* if the block is in memory */ /* if the block is in memory */
pb_target_t *target,/* target for block */ xfs_buftarg_t *target,/* target for block */
loff_t ioff, /* starting offset of range */ loff_t ioff, /* starting offset of range */
size_t isize, /* length of range */ size_t isize, /* length of range */
page_buf_flags_t flags) /* PBF_TRYLOCK */ page_buf_flags_t flags) /* PBF_TRYLOCK */
...@@ -661,14 +661,14 @@ pagebuf_find( /* find buffer for block */ ...@@ -661,14 +661,14 @@ pagebuf_find( /* find buffer for block */
* although backing storage may not be. If PBF_READ is set in * although backing storage may not be. If PBF_READ is set in
* flags, pagebuf_iostart is called also. * flags, pagebuf_iostart is called also.
*/ */
page_buf_t * xfs_buf_t *
pagebuf_get( /* allocate a buffer */ pagebuf_get( /* allocate a buffer */
pb_target_t *target,/* target for buffer */ xfs_buftarg_t *target,/* target for buffer */
loff_t ioff, /* starting offset of range */ loff_t ioff, /* starting offset of range */
size_t isize, /* length of range */ size_t isize, /* length of range */
page_buf_flags_t flags) /* PBF_TRYLOCK */ page_buf_flags_t flags) /* PBF_TRYLOCK */
{ {
page_buf_t *pb, *new_pb; xfs_buf_t *pb, *new_pb;
int error; int error;
new_pb = pagebuf_allocate(flags); new_pb = pagebuf_allocate(flags);
...@@ -732,14 +732,14 @@ pagebuf_get( /* allocate a buffer */ ...@@ -732,14 +732,14 @@ pagebuf_get( /* allocate a buffer */
/* /*
* Create a skeletal pagebuf (no pages associated with it). * Create a skeletal pagebuf (no pages associated with it).
*/ */
page_buf_t * xfs_buf_t *
pagebuf_lookup( pagebuf_lookup(
struct pb_target *target, xfs_buftarg_t *target,
loff_t ioff, loff_t ioff,
size_t isize, size_t isize,
page_buf_flags_t flags) page_buf_flags_t flags)
{ {
page_buf_t *pb; xfs_buf_t *pb;
pb = pagebuf_allocate(flags); pb = pagebuf_allocate(flags);
if (pb) { if (pb) {
...@@ -754,7 +754,7 @@ pagebuf_lookup( ...@@ -754,7 +754,7 @@ pagebuf_lookup(
*/ */
void void
pagebuf_readahead( pagebuf_readahead(
pb_target_t *target, xfs_buftarg_t *target,
loff_t ioff, loff_t ioff,
size_t isize, size_t isize,
page_buf_flags_t flags) page_buf_flags_t flags)
...@@ -771,12 +771,12 @@ pagebuf_readahead( ...@@ -771,12 +771,12 @@ pagebuf_readahead(
pagebuf_get(target, ioff, isize, flags); pagebuf_get(target, ioff, isize, flags);
} }
page_buf_t * xfs_buf_t *
pagebuf_get_empty( pagebuf_get_empty(
size_t len, size_t len,
pb_target_t *target) xfs_buftarg_t *target)
{ {
page_buf_t *pb; xfs_buf_t *pb;
pb = pagebuf_allocate(0); pb = pagebuf_allocate(0);
if (pb) if (pb)
...@@ -798,7 +798,7 @@ mem_to_page( ...@@ -798,7 +798,7 @@ mem_to_page(
int int
pagebuf_associate_memory( pagebuf_associate_memory(
page_buf_t *pb, xfs_buf_t *pb,
void *mem, void *mem,
size_t len) size_t len)
{ {
...@@ -906,7 +906,7 @@ pagebuf_get_no_daddr( ...@@ -906,7 +906,7 @@ pagebuf_get_no_daddr(
*/ */
void void
pagebuf_hold( pagebuf_hold(
page_buf_t *pb) xfs_buf_t *pb)
{ {
atomic_inc(&pb->pb_hold); atomic_inc(&pb->pb_hold);
PB_TRACE(pb, "hold", 0); PB_TRACE(pb, "hold", 0);
...@@ -920,7 +920,7 @@ pagebuf_hold( ...@@ -920,7 +920,7 @@ pagebuf_hold(
*/ */
void void
pagebuf_rele( pagebuf_rele(
page_buf_t *pb) xfs_buf_t *pb)
{ {
pb_hash_t *hash = pb_hash(pb); pb_hash_t *hash = pb_hash(pb);
...@@ -979,7 +979,7 @@ pagebuf_rele( ...@@ -979,7 +979,7 @@ pagebuf_rele(
int int
pagebuf_cond_lock( /* lock buffer, if not locked */ pagebuf_cond_lock( /* lock buffer, if not locked */
/* returns -EBUSY if locked) */ /* returns -EBUSY if locked) */
page_buf_t *pb) xfs_buf_t *pb)
{ {
int locked; int locked;
...@@ -998,7 +998,7 @@ pagebuf_cond_lock( /* lock buffer, if not locked */ ...@@ -998,7 +998,7 @@ pagebuf_cond_lock( /* lock buffer, if not locked */
*/ */
int int
pagebuf_lock_value( pagebuf_lock_value(
page_buf_t *pb) xfs_buf_t *pb)
{ {
return(atomic_read(&pb->pb_sema.count)); return(atomic_read(&pb->pb_sema.count));
} }
...@@ -1013,7 +1013,7 @@ pagebuf_lock_value( ...@@ -1013,7 +1013,7 @@ pagebuf_lock_value(
*/ */
int int
pagebuf_lock( pagebuf_lock(
page_buf_t *pb) xfs_buf_t *pb)
{ {
PB_TRACE(pb, "lock", 0); PB_TRACE(pb, "lock", 0);
if (atomic_read(&pb->pb_io_remaining)) if (atomic_read(&pb->pb_io_remaining))
...@@ -1033,7 +1033,7 @@ pagebuf_lock( ...@@ -1033,7 +1033,7 @@ pagebuf_lock(
*/ */
void void
pagebuf_unlock( /* unlock buffer */ pagebuf_unlock( /* unlock buffer */
page_buf_t *pb) /* buffer to unlock */ xfs_buf_t *pb) /* buffer to unlock */
{ {
PB_CLEAR_OWNER(pb); PB_CLEAR_OWNER(pb);
up(&pb->pb_sema); up(&pb->pb_sema);
...@@ -1061,7 +1061,7 @@ pagebuf_unlock( /* unlock buffer */ ...@@ -1061,7 +1061,7 @@ pagebuf_unlock( /* unlock buffer */
*/ */
void void
pagebuf_pin( pagebuf_pin(
page_buf_t *pb) xfs_buf_t *pb)
{ {
atomic_inc(&pb->pb_pin_count); atomic_inc(&pb->pb_pin_count);
PB_TRACE(pb, "pin", (long)pb->pb_pin_count.counter); PB_TRACE(pb, "pin", (long)pb->pb_pin_count.counter);
...@@ -1076,7 +1076,7 @@ pagebuf_pin( ...@@ -1076,7 +1076,7 @@ pagebuf_pin(
*/ */
void void
pagebuf_unpin( pagebuf_unpin(
page_buf_t *pb) xfs_buf_t *pb)
{ {
if (atomic_dec_and_test(&pb->pb_pin_count)) { if (atomic_dec_and_test(&pb->pb_pin_count)) {
wake_up_all(&pb->pb_waiters); wake_up_all(&pb->pb_waiters);
...@@ -1086,7 +1086,7 @@ pagebuf_unpin( ...@@ -1086,7 +1086,7 @@ pagebuf_unpin(
int int
pagebuf_ispin( pagebuf_ispin(
page_buf_t *pb) xfs_buf_t *pb)
{ {
return atomic_read(&pb->pb_pin_count); return atomic_read(&pb->pb_pin_count);
} }
...@@ -1100,7 +1100,7 @@ pagebuf_ispin( ...@@ -1100,7 +1100,7 @@ pagebuf_ispin(
*/ */
static inline void static inline void
_pagebuf_wait_unpin( _pagebuf_wait_unpin(
page_buf_t *pb) xfs_buf_t *pb)
{ {
DECLARE_WAITQUEUE (wait, current); DECLARE_WAITQUEUE (wait, current);
...@@ -1135,7 +1135,7 @@ void ...@@ -1135,7 +1135,7 @@ void
pagebuf_iodone_work( pagebuf_iodone_work(
void *v) void *v)
{ {
page_buf_t *pb = (page_buf_t *)v; xfs_buf_t *pb = (xfs_buf_t *)v;
if (pb->pb_iodone) { if (pb->pb_iodone) {
(*(pb->pb_iodone)) (pb); (*(pb->pb_iodone)) (pb);
...@@ -1151,7 +1151,7 @@ pagebuf_iodone_work( ...@@ -1151,7 +1151,7 @@ pagebuf_iodone_work(
void void
pagebuf_iodone( pagebuf_iodone(
page_buf_t *pb, xfs_buf_t *pb,
int dataio, int dataio,
int schedule) int schedule)
{ {
...@@ -1182,7 +1182,7 @@ pagebuf_iodone( ...@@ -1182,7 +1182,7 @@ pagebuf_iodone(
*/ */
void void
pagebuf_ioerror( /* mark/clear buffer error flag */ pagebuf_ioerror( /* mark/clear buffer error flag */
page_buf_t *pb, /* buffer to mark */ xfs_buf_t *pb, /* buffer to mark */
unsigned int error) /* error to store (0 if none) */ unsigned int error) /* error to store (0 if none) */
{ {
pb->pb_error = error; pb->pb_error = error;
...@@ -1203,7 +1203,7 @@ pagebuf_ioerror( /* mark/clear buffer error flag */ ...@@ -1203,7 +1203,7 @@ pagebuf_ioerror( /* mark/clear buffer error flag */
*/ */
int int
pagebuf_iostart( /* start I/O on a buffer */ pagebuf_iostart( /* start I/O on a buffer */
page_buf_t *pb, /* buffer to start */ xfs_buf_t *pb, /* buffer to start */
page_buf_flags_t flags) /* PBF_LOCK, PBF_ASYNC, PBF_READ, */ page_buf_flags_t flags) /* PBF_LOCK, PBF_ASYNC, PBF_READ, */
/* PBF_WRITE, PBF_DELWRI, */ /* PBF_WRITE, PBF_DELWRI, */
/* PBF_DONT_BLOCK */ /* PBF_DONT_BLOCK */
...@@ -1224,7 +1224,7 @@ pagebuf_iostart( /* start I/O on a buffer */ ...@@ -1224,7 +1224,7 @@ pagebuf_iostart( /* start I/O on a buffer */
pb->pb_flags |= flags & (PBF_READ | PBF_WRITE | PBF_ASYNC | \ pb->pb_flags |= flags & (PBF_READ | PBF_WRITE | PBF_ASYNC | \
PBF_READ_AHEAD | PBF_RUN_QUEUES); PBF_READ_AHEAD | PBF_RUN_QUEUES);
BUG_ON(pb->pb_bn == PAGE_BUF_DADDR_NULL); BUG_ON(pb->pb_bn == XFS_BUF_DADDR_NULL);
/* For writes allow an alternate strategy routine to precede /* For writes allow an alternate strategy routine to precede
* the actual I/O request (which may not be issued at all in * the actual I/O request (which may not be issued at all in
...@@ -1250,7 +1250,7 @@ pagebuf_iostart( /* start I/O on a buffer */ ...@@ -1250,7 +1250,7 @@ pagebuf_iostart( /* start I/O on a buffer */
STATIC __inline__ int STATIC __inline__ int
_pagebuf_iolocked( _pagebuf_iolocked(
page_buf_t *pb) xfs_buf_t *pb)
{ {
ASSERT(pb->pb_flags & (PBF_READ|PBF_WRITE)); ASSERT(pb->pb_flags & (PBF_READ|PBF_WRITE));
if (pb->pb_flags & PBF_READ) if (pb->pb_flags & PBF_READ)
...@@ -1260,7 +1260,7 @@ _pagebuf_iolocked( ...@@ -1260,7 +1260,7 @@ _pagebuf_iolocked(
STATIC __inline__ void STATIC __inline__ void
_pagebuf_iodone( _pagebuf_iodone(
page_buf_t *pb, xfs_buf_t *pb,
int schedule) int schedule)
{ {
if (atomic_dec_and_test(&pb->pb_io_remaining) == 1) { if (atomic_dec_and_test(&pb->pb_io_remaining) == 1) {
...@@ -1275,7 +1275,7 @@ bio_end_io_pagebuf( ...@@ -1275,7 +1275,7 @@ bio_end_io_pagebuf(
unsigned int bytes_done, unsigned int bytes_done,
int error) int error)
{ {
page_buf_t *pb = (page_buf_t *)bio->bi_private; xfs_buf_t *pb = (xfs_buf_t *)bio->bi_private;
unsigned int i, blocksize = pb->pb_target->pbr_bsize; unsigned int i, blocksize = pb->pb_target->pbr_bsize;
unsigned int sectorshift = pb->pb_target->pbr_sshift; unsigned int sectorshift = pb->pb_target->pbr_sshift;
struct bio_vec *bvec = bio->bi_io_vec; struct bio_vec *bvec = bio->bi_io_vec;
...@@ -1316,7 +1316,7 @@ bio_end_io_pagebuf( ...@@ -1316,7 +1316,7 @@ bio_end_io_pagebuf(
void void
_pagebuf_ioapply( _pagebuf_ioapply(
page_buf_t *pb) xfs_buf_t *pb)
{ {
int i, map_i, total_nr_pages, nr_pages; int i, map_i, total_nr_pages, nr_pages;
struct bio *bio; struct bio *bio;
...@@ -1435,7 +1435,7 @@ _pagebuf_ioapply( ...@@ -1435,7 +1435,7 @@ _pagebuf_ioapply(
*/ */
int int
pagebuf_iorequest( /* start real I/O */ pagebuf_iorequest( /* start real I/O */
page_buf_t *pb) /* buffer to convey to device */ xfs_buf_t *pb) /* buffer to convey to device */
{ {
PB_TRACE(pb, "iorequest", 0); PB_TRACE(pb, "iorequest", 0);
...@@ -1471,7 +1471,7 @@ pagebuf_iorequest( /* start real I/O */ ...@@ -1471,7 +1471,7 @@ pagebuf_iorequest( /* start real I/O */
*/ */
int int
pagebuf_iowait( pagebuf_iowait(
page_buf_t *pb) xfs_buf_t *pb)
{ {
PB_TRACE(pb, "iowait", 0); PB_TRACE(pb, "iowait", 0);
if (atomic_read(&pb->pb_io_remaining)) if (atomic_read(&pb->pb_io_remaining))
...@@ -1483,7 +1483,7 @@ pagebuf_iowait( ...@@ -1483,7 +1483,7 @@ pagebuf_iowait(
STATIC void * STATIC void *
pagebuf_mapout_locked( pagebuf_mapout_locked(
page_buf_t *pb) xfs_buf_t *pb)
{ {
void *old_addr = NULL; void *old_addr = NULL;
...@@ -1502,7 +1502,7 @@ pagebuf_mapout_locked( ...@@ -1502,7 +1502,7 @@ pagebuf_mapout_locked(
caddr_t caddr_t
pagebuf_offset( pagebuf_offset(
page_buf_t *pb, xfs_buf_t *pb,
size_t offset) size_t offset)
{ {
struct page *page; struct page *page;
...@@ -1520,7 +1520,7 @@ pagebuf_offset( ...@@ -1520,7 +1520,7 @@ pagebuf_offset(
*/ */
void void
pagebuf_iomove( pagebuf_iomove(
page_buf_t *pb, /* buffer to process */ xfs_buf_t *pb, /* buffer to process */
size_t boff, /* starting buffer offset */ size_t boff, /* starting buffer offset */
size_t bsize, /* length to copy */ size_t bsize, /* length to copy */
caddr_t data, /* data address */ caddr_t data, /* data address */
...@@ -1564,7 +1564,7 @@ STATIC spinlock_t pbd_delwrite_lock = SPIN_LOCK_UNLOCKED; ...@@ -1564,7 +1564,7 @@ STATIC spinlock_t pbd_delwrite_lock = SPIN_LOCK_UNLOCKED;
STATIC void STATIC void
pagebuf_delwri_queue( pagebuf_delwri_queue(
page_buf_t *pb, xfs_buf_t *pb,
int unlock) int unlock)
{ {
PB_TRACE(pb, "delwri_q", (long)unlock); PB_TRACE(pb, "delwri_q", (long)unlock);
...@@ -1587,7 +1587,7 @@ pagebuf_delwri_queue( ...@@ -1587,7 +1587,7 @@ pagebuf_delwri_queue(
void void
pagebuf_delwri_dequeue( pagebuf_delwri_dequeue(
page_buf_t *pb) xfs_buf_t *pb)
{ {
PB_TRACE(pb, "delwri_uq", 0); PB_TRACE(pb, "delwri_uq", 0);
spin_lock(&pbd_delwrite_lock); spin_lock(&pbd_delwrite_lock);
...@@ -1621,7 +1621,7 @@ STATIC int ...@@ -1621,7 +1621,7 @@ STATIC int
pagebuf_daemon( pagebuf_daemon(
void *data) void *data)
{ {
page_buf_t *pb; xfs_buf_t *pb;
struct list_head *curr, *next, tmp; struct list_head *curr, *next, tmp;
/* Set up the thread */ /* Set up the thread */
...@@ -1644,7 +1644,7 @@ pagebuf_daemon( ...@@ -1644,7 +1644,7 @@ pagebuf_daemon(
spin_lock(&pbd_delwrite_lock); spin_lock(&pbd_delwrite_lock);
list_for_each_safe(curr, next, &pbd_delwrite_queue) { list_for_each_safe(curr, next, &pbd_delwrite_queue) {
pb = list_entry(curr, page_buf_t, pb_list); pb = list_entry(curr, xfs_buf_t, pb_list);
PB_TRACE(pb, "walkq1", (long)pagebuf_ispin(pb)); PB_TRACE(pb, "walkq1", (long)pagebuf_ispin(pb));
...@@ -1664,7 +1664,7 @@ pagebuf_daemon( ...@@ -1664,7 +1664,7 @@ pagebuf_daemon(
spin_unlock(&pbd_delwrite_lock); spin_unlock(&pbd_delwrite_lock);
while (!list_empty(&tmp)) { while (!list_empty(&tmp)) {
pb = list_entry(tmp.next, page_buf_t, pb_list); pb = list_entry(tmp.next, xfs_buf_t, pb_list);
list_del_init(&pb->pb_list); list_del_init(&pb->pb_list);
pagebuf_iostrategy(pb); pagebuf_iostrategy(pb);
...@@ -1682,11 +1682,11 @@ pagebuf_daemon( ...@@ -1682,11 +1682,11 @@ pagebuf_daemon(
void void
pagebuf_delwri_flush( pagebuf_delwri_flush(
pb_target_t *target, xfs_buftarg_t *target,
u_long flags, u_long flags,
int *pinptr) int *pinptr)
{ {
page_buf_t *pb; xfs_buf_t *pb;
struct list_head *curr, *next, tmp; struct list_head *curr, *next, tmp;
int pincount = 0; int pincount = 0;
...@@ -1697,7 +1697,7 @@ pagebuf_delwri_flush( ...@@ -1697,7 +1697,7 @@ pagebuf_delwri_flush(
INIT_LIST_HEAD(&tmp); INIT_LIST_HEAD(&tmp);
list_for_each_safe(curr, next, &pbd_delwrite_queue) { list_for_each_safe(curr, next, &pbd_delwrite_queue) {
pb = list_entry(curr, page_buf_t, pb_list); pb = list_entry(curr, xfs_buf_t, pb_list);
/* /*
* Skip other targets, markers and in progress buffers * Skip other targets, markers and in progress buffers
...@@ -1723,7 +1723,7 @@ pagebuf_delwri_flush( ...@@ -1723,7 +1723,7 @@ pagebuf_delwri_flush(
spin_unlock(&pbd_delwrite_lock); spin_unlock(&pbd_delwrite_lock);
list_for_each_safe(curr, next, &tmp) { list_for_each_safe(curr, next, &tmp) {
pb = list_entry(curr, page_buf_t, pb_list); pb = list_entry(curr, xfs_buf_t, pb_list);
if (flags & PBDF_WAIT) if (flags & PBDF_WAIT)
pb->pb_flags &= ~PBF_ASYNC; pb->pb_flags &= ~PBF_ASYNC;
...@@ -1735,7 +1735,7 @@ pagebuf_delwri_flush( ...@@ -1735,7 +1735,7 @@ pagebuf_delwri_flush(
} }
while (!list_empty(&tmp)) { while (!list_empty(&tmp)) {
pb = list_entry(tmp.next, page_buf_t, pb_list); pb = list_entry(tmp.next, xfs_buf_t, pb_list);
list_del_init(&pb->pb_list); list_del_init(&pb->pb_list);
pagebuf_iowait(pb); pagebuf_iowait(pb);
...@@ -1800,7 +1800,7 @@ pagebuf_init(void) ...@@ -1800,7 +1800,7 @@ pagebuf_init(void)
{ {
int i; int i;
pagebuf_cache = kmem_cache_create("page_buf_t", sizeof(page_buf_t), 0, pagebuf_cache = kmem_cache_create("xfs_buf_t", sizeof(xfs_buf_t), 0,
SLAB_HWCACHE_ALIGN, NULL, NULL); SLAB_HWCACHE_ALIGN, NULL, NULL);
if (pagebuf_cache == NULL) { if (pagebuf_cache == NULL) {
printk("pagebuf: couldn't init pagebuf cache\n"); printk("pagebuf: couldn't init pagebuf cache\n");
......
...@@ -51,10 +51,7 @@ ...@@ -51,10 +51,7 @@
* Base types * Base types
*/ */
/* daddr must be signed since -1 is used for bmaps that are not yet allocated */ #define XFS_BUF_DADDR_NULL ((xfs_daddr_t) (-1LL))
typedef loff_t page_buf_daddr_t;
#define PAGE_BUF_DADDR_NULL ((page_buf_daddr_t) (-1LL))
#define page_buf_ctob(pp) ((pp) * PAGE_CACHE_SIZE) #define page_buf_ctob(pp) ((pp) * PAGE_CACHE_SIZE)
#define page_buf_btoc(dd) (((dd) + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT) #define page_buf_btoc(dd) (((dd) + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT)
...@@ -103,17 +100,17 @@ typedef enum page_buf_flags_e { /* pb_flags values */ ...@@ -103,17 +100,17 @@ typedef enum page_buf_flags_e { /* pb_flags values */
#define PBF_NOT_DONE(pb) (((pb)->pb_flags & (PBF_PARTIAL|PBF_NONE)) != 0) #define PBF_NOT_DONE(pb) (((pb)->pb_flags & (PBF_PARTIAL|PBF_NONE)) != 0)
#define PBF_DONE(pb) (((pb)->pb_flags & (PBF_PARTIAL|PBF_NONE)) == 0) #define PBF_DONE(pb) (((pb)->pb_flags & (PBF_PARTIAL|PBF_NONE)) == 0)
typedef struct pb_target { typedef struct xfs_buftarg {
dev_t pbr_dev; dev_t pbr_dev;
struct block_device *pbr_bdev; struct block_device *pbr_bdev;
struct address_space *pbr_mapping; struct address_space *pbr_mapping;
unsigned int pbr_bsize; unsigned int pbr_bsize;
unsigned int pbr_sshift; unsigned int pbr_sshift;
size_t pbr_smask; size_t pbr_smask;
} pb_target_t; } xfs_buftarg_t;
/* /*
* page_buf_t: Buffer structure for page cache-based buffers * xfs_buf_t: Buffer structure for page cache-based buffers
* *
* This buffer structure is used by the page cache buffer management routines * This buffer structure is used by the page cache buffer management routines
* to refer to an assembly of pages forming a logical buffer. The actual * to refer to an assembly of pages forming a logical buffer. The actual
...@@ -128,16 +125,16 @@ typedef struct pb_target { ...@@ -128,16 +125,16 @@ typedef struct pb_target {
* to indicate which disk blocks in the page are not valid. * to indicate which disk blocks in the page are not valid.
*/ */
struct page_buf_s; struct xfs_buf;
typedef void (*page_buf_iodone_t)(struct page_buf_s *); typedef void (*page_buf_iodone_t)(struct xfs_buf *);
/* call-back function on I/O completion */ /* call-back function on I/O completion */
typedef void (*page_buf_relse_t)(struct page_buf_s *); typedef void (*page_buf_relse_t)(struct xfs_buf *);
/* call-back function on I/O completion */ /* call-back function on I/O completion */
typedef int (*page_buf_bdstrat_t)(struct page_buf_s *); typedef int (*page_buf_bdstrat_t)(struct xfs_buf *);
#define PB_PAGES 4 #define PB_PAGES 4
typedef struct page_buf_s { typedef struct xfs_buf {
struct semaphore pb_sema; /* semaphore for lockables */ struct semaphore pb_sema; /* semaphore for lockables */
unsigned long pb_flushtime; /* time to flush pagebuf */ unsigned long pb_flushtime; /* time to flush pagebuf */
atomic_t pb_pin_count; /* pin count */ atomic_t pb_pin_count; /* pin count */
...@@ -145,9 +142,9 @@ typedef struct page_buf_s { ...@@ -145,9 +142,9 @@ typedef struct page_buf_s {
struct list_head pb_list; struct list_head pb_list;
page_buf_flags_t pb_flags; /* status flags */ page_buf_flags_t pb_flags; /* status flags */
struct list_head pb_hash_list; struct list_head pb_hash_list;
struct pb_target *pb_target; /* logical object */ xfs_buftarg_t *pb_target; /* logical object */
atomic_t pb_hold; /* reference count */ atomic_t pb_hold; /* reference count */
page_buf_daddr_t pb_bn; /* block number for I/O */ xfs_daddr_t pb_bn; /* block number for I/O */
loff_t pb_file_offset; /* offset in file */ loff_t pb_file_offset; /* offset in file */
size_t pb_buffer_length; /* size of buffer in bytes */ size_t pb_buffer_length; /* size of buffer in bytes */
size_t pb_count_desired; /* desired transfer size */ size_t pb_count_desired; /* desired transfer size */
...@@ -171,52 +168,52 @@ typedef struct page_buf_s { ...@@ -171,52 +168,52 @@ typedef struct page_buf_s {
#ifdef PAGEBUF_LOCK_TRACKING #ifdef PAGEBUF_LOCK_TRACKING
int pb_last_holder; int pb_last_holder;
#endif #endif
} page_buf_t; } xfs_buf_t;
/* Finding and Reading Buffers */ /* Finding and Reading Buffers */
extern page_buf_t *pagebuf_find( /* find buffer for block if */ extern xfs_buf_t *pagebuf_find( /* find buffer for block if */
/* the block is in memory */ /* the block is in memory */
struct pb_target *, /* inode for block */ xfs_buftarg_t *, /* inode for block */
loff_t, /* starting offset of range */ loff_t, /* starting offset of range */
size_t, /* length of range */ size_t, /* length of range */
page_buf_flags_t); /* PBF_LOCK */ page_buf_flags_t); /* PBF_LOCK */
extern page_buf_t *pagebuf_get( /* allocate a buffer */ extern xfs_buf_t *pagebuf_get( /* allocate a buffer */
struct pb_target *, /* inode for buffer */ xfs_buftarg_t *, /* inode for buffer */
loff_t, /* starting offset of range */ loff_t, /* starting offset of range */
size_t, /* length of range */ size_t, /* length of range */
page_buf_flags_t); /* PBF_LOCK, PBF_READ, */ page_buf_flags_t); /* PBF_LOCK, PBF_READ, */
/* PBF_ASYNC */ /* PBF_ASYNC */
extern page_buf_t *pagebuf_lookup( extern xfs_buf_t *pagebuf_lookup(
struct pb_target *, xfs_buftarg_t *,
loff_t, /* starting offset of range */ loff_t, /* starting offset of range */
size_t, /* length of range */ size_t, /* length of range */
page_buf_flags_t); /* PBF_READ, PBF_WRITE, */ page_buf_flags_t); /* PBF_READ, PBF_WRITE, */
/* PBF_FORCEIO, */ /* PBF_FORCEIO, */
extern page_buf_t *pagebuf_get_empty( /* allocate pagebuf struct with */ extern xfs_buf_t *pagebuf_get_empty( /* allocate pagebuf struct with */
/* no memory or disk address */ /* no memory or disk address */
size_t len, size_t len,
struct pb_target *); /* mount point "fake" inode */ xfs_buftarg_t *); /* mount point "fake" inode */
extern page_buf_t *pagebuf_get_no_daddr(/* allocate pagebuf struct */ extern xfs_buf_t *pagebuf_get_no_daddr(/* allocate pagebuf struct */
/* without disk address */ /* without disk address */
size_t len, size_t len,
struct pb_target *); /* mount point "fake" inode */ xfs_buftarg_t *); /* mount point "fake" inode */
extern int pagebuf_associate_memory( extern int pagebuf_associate_memory(
page_buf_t *, xfs_buf_t *,
void *, void *,
size_t); size_t);
extern void pagebuf_hold( /* increment reference count */ extern void pagebuf_hold( /* increment reference count */
page_buf_t *); /* buffer to hold */ xfs_buf_t *); /* buffer to hold */
extern void pagebuf_readahead( /* read ahead into cache */ extern void pagebuf_readahead( /* read ahead into cache */
struct pb_target *, /* target for buffer (or NULL) */ xfs_buftarg_t *, /* target for buffer (or NULL) */
loff_t, /* starting offset of range */ loff_t, /* starting offset of range */
size_t, /* length of range */ size_t, /* length of range */
page_buf_flags_t); /* additional read flags */ page_buf_flags_t); /* additional read flags */
...@@ -224,63 +221,63 @@ extern void pagebuf_readahead( /* read ahead into cache */ ...@@ -224,63 +221,63 @@ extern void pagebuf_readahead( /* read ahead into cache */
/* Releasing Buffers */ /* Releasing Buffers */
extern void pagebuf_free( /* deallocate a buffer */ extern void pagebuf_free( /* deallocate a buffer */
page_buf_t *); /* buffer to deallocate */ xfs_buf_t *); /* buffer to deallocate */
extern void pagebuf_rele( /* release hold on a buffer */ extern void pagebuf_rele( /* release hold on a buffer */
page_buf_t *); /* buffer to release */ xfs_buf_t *); /* buffer to release */
/* Locking and Unlocking Buffers */ /* Locking and Unlocking Buffers */
extern int pagebuf_cond_lock( /* lock buffer, if not locked */ extern int pagebuf_cond_lock( /* lock buffer, if not locked */
/* (returns -EBUSY if locked) */ /* (returns -EBUSY if locked) */
page_buf_t *); /* buffer to lock */ xfs_buf_t *); /* buffer to lock */
extern int pagebuf_lock_value( /* return count on lock */ extern int pagebuf_lock_value( /* return count on lock */
page_buf_t *); /* buffer to check */ xfs_buf_t *); /* buffer to check */
extern int pagebuf_lock( /* lock buffer */ extern int pagebuf_lock( /* lock buffer */
page_buf_t *); /* buffer to lock */ xfs_buf_t *); /* buffer to lock */
extern void pagebuf_unlock( /* unlock buffer */ extern void pagebuf_unlock( /* unlock buffer */
page_buf_t *); /* buffer to unlock */ xfs_buf_t *); /* buffer to unlock */
/* Buffer Read and Write Routines */ /* Buffer Read and Write Routines */
extern void pagebuf_iodone( /* mark buffer I/O complete */ extern void pagebuf_iodone( /* mark buffer I/O complete */
page_buf_t *, /* buffer to mark */ xfs_buf_t *, /* buffer to mark */
int, /* use data/log helper thread. */ int, /* use data/log helper thread. */
int); /* run completion locally, or in int); /* run completion locally, or in
* a helper thread. */ * a helper thread. */
extern void pagebuf_ioerror( /* mark buffer in error (or not) */ extern void pagebuf_ioerror( /* mark buffer in error (or not) */
page_buf_t *, /* buffer to mark */ xfs_buf_t *, /* buffer to mark */
unsigned int); /* error to store (0 if none) */ unsigned int); /* error to store (0 if none) */
extern int pagebuf_iostart( /* start I/O on a buffer */ extern int pagebuf_iostart( /* start I/O on a buffer */
page_buf_t *, /* buffer to start */ xfs_buf_t *, /* buffer to start */
page_buf_flags_t); /* PBF_LOCK, PBF_ASYNC, */ page_buf_flags_t); /* PBF_LOCK, PBF_ASYNC, */
/* PBF_READ, PBF_WRITE, */ /* PBF_READ, PBF_WRITE, */
/* PBF_DELWRI */ /* PBF_DELWRI */
extern int pagebuf_iorequest( /* start real I/O */ extern int pagebuf_iorequest( /* start real I/O */
page_buf_t *); /* buffer to convey to device */ xfs_buf_t *); /* buffer to convey to device */
extern int pagebuf_iowait( /* wait for buffer I/O done */ extern int pagebuf_iowait( /* wait for buffer I/O done */
page_buf_t *); /* buffer to wait on */ xfs_buf_t *); /* buffer to wait on */
extern void pagebuf_iomove( /* move data in/out of pagebuf */ extern void pagebuf_iomove( /* move data in/out of pagebuf */
page_buf_t *, /* buffer to manipulate */ xfs_buf_t *, /* buffer to manipulate */
size_t, /* starting buffer offset */ size_t, /* starting buffer offset */
size_t, /* length in buffer */ size_t, /* length in buffer */
caddr_t, /* data pointer */ caddr_t, /* data pointer */
page_buf_rw_t); /* direction */ page_buf_rw_t); /* direction */
static inline int pagebuf_iostrategy(page_buf_t *pb) static inline int pagebuf_iostrategy(xfs_buf_t *pb)
{ {
return pb->pb_strat ? pb->pb_strat(pb) : pagebuf_iorequest(pb); return pb->pb_strat ? pb->pb_strat(pb) : pagebuf_iorequest(pb);
} }
static inline int pagebuf_geterror(page_buf_t *pb) static inline int pagebuf_geterror(xfs_buf_t *pb)
{ {
return pb ? pb->pb_error : ENOMEM; return pb ? pb->pb_error : ENOMEM;
} }
...@@ -288,30 +285,30 @@ static inline int pagebuf_geterror(page_buf_t *pb) ...@@ -288,30 +285,30 @@ static inline int pagebuf_geterror(page_buf_t *pb)
/* Buffer Utility Routines */ /* Buffer Utility Routines */
extern caddr_t pagebuf_offset( /* pointer at offset in buffer */ extern caddr_t pagebuf_offset( /* pointer at offset in buffer */
page_buf_t *, /* buffer to offset into */ xfs_buf_t *, /* buffer to offset into */
size_t); /* offset */ size_t); /* offset */
/* Pinning Buffer Storage in Memory */ /* Pinning Buffer Storage in Memory */
extern void pagebuf_pin( /* pin buffer in memory */ extern void pagebuf_pin( /* pin buffer in memory */
page_buf_t *); /* buffer to pin */ xfs_buf_t *); /* buffer to pin */
extern void pagebuf_unpin( /* unpin buffered data */ extern void pagebuf_unpin( /* unpin buffered data */
page_buf_t *); /* buffer to unpin */ xfs_buf_t *); /* buffer to unpin */
extern int pagebuf_ispin( /* check if buffer is pinned */ extern int pagebuf_ispin( /* check if buffer is pinned */
page_buf_t *); /* buffer to check */ xfs_buf_t *); /* buffer to check */
/* Delayed Write Buffer Routines */ /* Delayed Write Buffer Routines */
#define PBDF_WAIT 0x01 #define PBDF_WAIT 0x01
extern void pagebuf_delwri_flush( extern void pagebuf_delwri_flush(
pb_target_t *, xfs_buftarg_t *,
unsigned long, unsigned long,
int *); int *);
extern void pagebuf_delwri_dequeue( extern void pagebuf_delwri_dequeue(
page_buf_t *); xfs_buf_t *);
/* Buffer Daemon Setup Routines */ /* Buffer Daemon Setup Routines */
...@@ -322,7 +319,7 @@ extern void pagebuf_terminate(void); ...@@ -322,7 +319,7 @@ extern void pagebuf_terminate(void);
#ifdef PAGEBUF_TRACE #ifdef PAGEBUF_TRACE
extern ktrace_t *pagebuf_trace_buf; extern ktrace_t *pagebuf_trace_buf;
extern void pagebuf_trace( extern void pagebuf_trace(
page_buf_t *, /* buffer being traced */ xfs_buf_t *, /* buffer being traced */
char *, /* description of operation */ char *, /* description of operation */
void *, /* arbitrary diagnostic value */ void *, /* arbitrary diagnostic value */
void *); /* return address */ void *); /* return address */
...@@ -369,7 +366,7 @@ extern void pagebuf_trace( ...@@ -369,7 +366,7 @@ extern void pagebuf_trace(
#define XFS_BUF_MANAGE PBF_FS_MANAGED #define XFS_BUF_MANAGE PBF_FS_MANAGED
#define XFS_BUF_UNMANAGE(x) ((x)->pb_flags &= ~PBF_FS_MANAGED) #define XFS_BUF_UNMANAGE(x) ((x)->pb_flags &= ~PBF_FS_MANAGED)
static inline void xfs_buf_undelay(page_buf_t *pb) static inline void xfs_buf_undelay(xfs_buf_t *pb)
{ {
if (pb->pb_flags & PBF_DELWRI) { if (pb->pb_flags & PBF_DELWRI) {
if (pb->pb_list.next != &pb->pb_list) { if (pb->pb_list.next != &pb->pb_list) {
...@@ -423,12 +420,6 @@ static inline void xfs_buf_undelay(page_buf_t *pb) ...@@ -423,12 +420,6 @@ static inline void xfs_buf_undelay(page_buf_t *pb)
#define XFS_BUF_BP_ISMAPPED(bp) 1 #define XFS_BUF_BP_ISMAPPED(bp) 1
typedef struct page_buf_s xfs_buf_t;
#define xfs_buf page_buf_s
typedef struct pb_target xfs_buftarg_t;
#define xfs_buftarg pb_target
#define XFS_BUF_DATAIO(x) ((x)->pb_flags |= PBF_FS_DATAIOD) #define XFS_BUF_DATAIO(x) ((x)->pb_flags |= PBF_FS_DATAIOD)
#define XFS_BUF_UNDATAIO(x) ((x)->pb_flags &= ~PBF_FS_DATAIOD) #define XFS_BUF_UNDATAIO(x) ((x)->pb_flags &= ~PBF_FS_DATAIOD)
...@@ -461,7 +452,7 @@ typedef struct pb_target xfs_buftarg_t; ...@@ -461,7 +452,7 @@ typedef struct pb_target xfs_buftarg_t;
#define XFS_BUF_PTR(bp) (xfs_caddr_t)((bp)->pb_addr) #define XFS_BUF_PTR(bp) (xfs_caddr_t)((bp)->pb_addr)
extern inline xfs_caddr_t xfs_buf_offset(page_buf_t *bp, size_t offset) extern inline xfs_caddr_t xfs_buf_offset(xfs_buf_t *bp, size_t offset)
{ {
if (bp->pb_flags & PBF_MAPPED) if (bp->pb_flags & PBF_MAPPED)
return XFS_BUF_PTR(bp) + offset; return XFS_BUF_PTR(bp) + offset;
...@@ -472,7 +463,7 @@ extern inline xfs_caddr_t xfs_buf_offset(page_buf_t *bp, size_t offset) ...@@ -472,7 +463,7 @@ extern inline xfs_caddr_t xfs_buf_offset(page_buf_t *bp, size_t offset)
pagebuf_associate_memory(bp, val, count) pagebuf_associate_memory(bp, val, count)
#define XFS_BUF_ADDR(bp) ((bp)->pb_bn) #define XFS_BUF_ADDR(bp) ((bp)->pb_bn)
#define XFS_BUF_SET_ADDR(bp, blk) \ #define XFS_BUF_SET_ADDR(bp, blk) \
((bp)->pb_bn = (page_buf_daddr_t)(blk)) ((bp)->pb_bn = (blk))
#define XFS_BUF_OFFSET(bp) ((bp)->pb_file_offset) #define XFS_BUF_OFFSET(bp) ((bp)->pb_file_offset)
#define XFS_BUF_SET_OFFSET(bp, off) \ #define XFS_BUF_SET_OFFSET(bp, off) \
((bp)->pb_file_offset = (off)) ((bp)->pb_file_offset = (off))
...@@ -517,7 +508,7 @@ extern inline xfs_caddr_t xfs_buf_offset(page_buf_t *bp, size_t offset) ...@@ -517,7 +508,7 @@ extern inline xfs_caddr_t xfs_buf_offset(page_buf_t *bp, size_t offset)
#define xfs_buf_get_flags(target, blkno, len, flags) \ #define xfs_buf_get_flags(target, blkno, len, flags) \
pagebuf_get((target), (blkno), (len), (flags)) pagebuf_get((target), (blkno), (len), (flags))
static inline int xfs_bawrite(void *mp, page_buf_t *bp) static inline int xfs_bawrite(void *mp, xfs_buf_t *bp)
{ {
bp->pb_fspriv3 = mp; bp->pb_fspriv3 = mp;
bp->pb_strat = xfs_bdstrat_cb; bp->pb_strat = xfs_bdstrat_cb;
...@@ -525,7 +516,7 @@ static inline int xfs_bawrite(void *mp, page_buf_t *bp) ...@@ -525,7 +516,7 @@ static inline int xfs_bawrite(void *mp, page_buf_t *bp)
return pagebuf_iostart(bp, PBF_WRITE | PBF_ASYNC | PBF_RUN_QUEUES); return pagebuf_iostart(bp, PBF_WRITE | PBF_ASYNC | PBF_RUN_QUEUES);
} }
static inline void xfs_buf_relse(page_buf_t *bp) static inline void xfs_buf_relse(xfs_buf_t *bp)
{ {
if (!bp->pb_relse) if (!bp->pb_relse)
pagebuf_unlock(bp); pagebuf_unlock(bp);
...@@ -553,7 +544,7 @@ static inline void xfs_buf_relse(page_buf_t *bp) ...@@ -553,7 +544,7 @@ static inline void xfs_buf_relse(page_buf_t *bp)
pagebuf_iomove((pb), (off), (len), NULL, PBRW_ZERO) pagebuf_iomove((pb), (off), (len), NULL, PBRW_ZERO)
static inline int XFS_bwrite(page_buf_t *pb) static inline int XFS_bwrite(xfs_buf_t *pb)
{ {
int iowait = (pb->pb_flags & PBF_ASYNC) == 0; int iowait = (pb->pb_flags & PBF_ASYNC) == 0;
int error = 0; int error = 0;
...@@ -573,7 +564,7 @@ static inline int XFS_bwrite(page_buf_t *pb) ...@@ -573,7 +564,7 @@ static inline int XFS_bwrite(page_buf_t *pb)
#define XFS_bdwrite(pb) \ #define XFS_bdwrite(pb) \
pagebuf_iostart(pb, PBF_DELWRI | PBF_ASYNC) pagebuf_iostart(pb, PBF_DELWRI | PBF_ASYNC)
static inline int xfs_bdwrite(void *mp, page_buf_t *bp) static inline int xfs_bdwrite(void *mp, xfs_buf_t *bp)
{ {
bp->pb_strat = xfs_bdstrat_cb; bp->pb_strat = xfs_bdstrat_cb;
bp->pb_fspriv3 = mp; bp->pb_fspriv3 = mp;
......
...@@ -659,7 +659,7 @@ xfs_ioctl( ...@@ -659,7 +659,7 @@ xfs_ioctl(
case XFS_IOC_DIOINFO: { case XFS_IOC_DIOINFO: {
struct dioattr da; struct dioattr da;
pb_target_t *target = xfs_buftarg_t *target =
(ip->i_d.di_flags & XFS_DIFLAG_REALTIME) ? (ip->i_d.di_flags & XFS_DIFLAG_REALTIME) ?
mp->m_rtdev_targp : mp->m_ddev_targp; mp->m_rtdev_targp : mp->m_ddev_targp;
......
...@@ -301,7 +301,7 @@ xfs_read( ...@@ -301,7 +301,7 @@ xfs_read(
/* END copy & waste from filemap.c */ /* END copy & waste from filemap.c */
if (ioflags & IO_ISDIRECT) { if (ioflags & IO_ISDIRECT) {
pb_target_t *target = xfs_buftarg_t *target =
(ip->i_d.di_flags & XFS_DIFLAG_REALTIME) ? (ip->i_d.di_flags & XFS_DIFLAG_REALTIME) ?
mp->m_rtdev_targp : mp->m_ddev_targp; mp->m_rtdev_targp : mp->m_ddev_targp;
if ((*offset & target->pbr_smask) || if ((*offset & target->pbr_smask) ||
...@@ -689,7 +689,7 @@ xfs_write( ...@@ -689,7 +689,7 @@ xfs_write(
} }
if (ioflags & IO_ISDIRECT) { if (ioflags & IO_ISDIRECT) {
pb_target_t *target = xfs_buftarg_t *target =
(xip->i_d.di_flags & XFS_DIFLAG_REALTIME) ? (xip->i_d.di_flags & XFS_DIFLAG_REALTIME) ?
mp->m_rtdev_targp : mp->m_ddev_targp; mp->m_rtdev_targp : mp->m_ddev_targp;
......
...@@ -38,7 +38,7 @@ struct xfs_mount; ...@@ -38,7 +38,7 @@ struct xfs_mount;
struct xfs_iocore; struct xfs_iocore;
struct xfs_inode; struct xfs_inode;
struct xfs_bmbt_irec; struct xfs_bmbt_irec;
struct page_buf_s; struct xfs_buf;
struct xfs_iomap; struct xfs_iomap;
#if defined(XFS_RW_TRACE) #if defined(XFS_RW_TRACE)
...@@ -89,8 +89,8 @@ extern void xfs_inval_cached_trace(struct xfs_iocore *, ...@@ -89,8 +89,8 @@ extern void xfs_inval_cached_trace(struct xfs_iocore *,
extern int xfs_bmap(struct bhv_desc *, xfs_off_t, ssize_t, int, extern int xfs_bmap(struct bhv_desc *, xfs_off_t, ssize_t, int,
struct xfs_iomap *, int *); struct xfs_iomap *, int *);
extern int xfsbdstrat(struct xfs_mount *, struct page_buf_s *); extern int xfsbdstrat(struct xfs_mount *, struct xfs_buf *);
extern int xfs_bdstrat_cb(struct page_buf_s *); extern int xfs_bdstrat_cb(struct xfs_buf *);
extern int xfs_zero_eof(struct vnode *, struct xfs_iocore *, xfs_off_t, extern int xfs_zero_eof(struct vnode *, struct xfs_iocore *, xfs_off_t,
xfs_fsize_t, xfs_fsize_t); xfs_fsize_t, xfs_fsize_t);
......
...@@ -112,7 +112,7 @@ extern void xfs_qm_exit(void); ...@@ -112,7 +112,7 @@ extern void xfs_qm_exit(void);
struct xfs_inode; struct xfs_inode;
struct xfs_mount; struct xfs_mount;
struct pb_target; struct xfs_buftarg;
struct block_device; struct block_device;
extern __uint64_t xfs_max_file_offset(unsigned int); extern __uint64_t xfs_max_file_offset(unsigned int);
...@@ -126,12 +126,12 @@ extern int xfs_blkdev_get(struct xfs_mount *, const char *, ...@@ -126,12 +126,12 @@ extern int xfs_blkdev_get(struct xfs_mount *, const char *,
struct block_device **); struct block_device **);
extern void xfs_blkdev_put(struct block_device *); extern void xfs_blkdev_put(struct block_device *);
extern struct pb_target *xfs_alloc_buftarg(struct block_device *); extern struct xfs_buftarg *xfs_alloc_buftarg(struct block_device *);
extern void xfs_relse_buftarg(struct pb_target *); extern void xfs_relse_buftarg(struct xfs_buftarg *);
extern void xfs_free_buftarg(struct pb_target *); extern void xfs_free_buftarg(struct xfs_buftarg *);
extern void xfs_flush_buftarg(struct pb_target *); extern void xfs_flush_buftarg(struct xfs_buftarg *);
extern int xfs_readonly_buftarg(struct pb_target *); extern int xfs_readonly_buftarg(struct xfs_buftarg *);
extern void xfs_setsize_buftarg(struct pb_target *, unsigned int, unsigned int); extern void xfs_setsize_buftarg(struct xfs_buftarg *, unsigned int, unsigned int);
extern unsigned int xfs_getsize_buftarg(struct pb_target *); extern unsigned int xfs_getsize_buftarg(struct xfs_buftarg *);
#endif /* __XFS_SUPER_H__ */ #endif /* __XFS_SUPER_H__ */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment