diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-28 18:23:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-28 18:23:52 -0400 |
commit | f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5 (patch) | |
tree | fb51d60060453aef9e776c7d3a31588609d34d76 /fs/xfs/xfs_alloc.h | |
parent | 0c9aac08261512d70d7d4817bd222abca8b6bdd6 (diff) | |
parent | 5a5881cdeec2c019b5c9a307800218ee029f7f61 (diff) |
Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs
Pull XFS update (part 2) from Ben Myers:
"Fixes for tracing of xfs_name strings, flag handling in
open_by_handle, a log space hang with freeze/unfreeze, fstrim offset
calculations, a section mismatch with xfs_qm_exit, an oops in
xlog_recover_process_iunlinks, and a deadlock in xfs_rtfree_extent.
There are also additional trace points for attributes, and the
addition of a workqueue for allocation to work around kernel stack
size limitations."
* 'for-linus' of git://oss.sgi.com/xfs/xfs:
xfs: add lots of attribute trace points
xfs: Fix oops on IO error during xlog_recover_process_iunlinks()
xfs: fix fstrim offset calculations
xfs: Account log unmount transaction correctly
xfs: don't cache inodes read through bulkstat
xfs: trace xfs_name strings correctly
xfs: introduce an allocation workqueue
xfs: Fix open flag handling in open_by_handle code
xfs: fix deadlock in xfs_rtfree_extent
fs: xfs: fix section mismatch in linux-next
Diffstat (limited to 'fs/xfs/xfs_alloc.h')
-rw-r--r-- | fs/xfs/xfs_alloc.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/fs/xfs/xfs_alloc.h b/fs/xfs/xfs_alloc.h index 2f52b924be79..3a7e7d8f8ded 100644 --- a/fs/xfs/xfs_alloc.h +++ b/fs/xfs/xfs_alloc.h | |||
@@ -25,6 +25,8 @@ struct xfs_perag; | |||
25 | struct xfs_trans; | 25 | struct xfs_trans; |
26 | struct xfs_busy_extent; | 26 | struct xfs_busy_extent; |
27 | 27 | ||
28 | extern struct workqueue_struct *xfs_alloc_wq; | ||
29 | |||
28 | /* | 30 | /* |
29 | * Freespace allocation types. Argument to xfs_alloc_[v]extent. | 31 | * Freespace allocation types. Argument to xfs_alloc_[v]extent. |
30 | */ | 32 | */ |
@@ -119,6 +121,9 @@ typedef struct xfs_alloc_arg { | |||
119 | char isfl; /* set if is freelist blocks - !acctg */ | 121 | char isfl; /* set if is freelist blocks - !acctg */ |
120 | char userdata; /* set if this is user data */ | 122 | char userdata; /* set if this is user data */ |
121 | xfs_fsblock_t firstblock; /* io first block allocated */ | 123 | xfs_fsblock_t firstblock; /* io first block allocated */ |
124 | struct completion *done; | ||
125 | struct work_struct work; | ||
126 | int result; | ||
122 | } xfs_alloc_arg_t; | 127 | } xfs_alloc_arg_t; |
123 | 128 | ||
124 | /* | 129 | /* |
@@ -243,6 +248,13 @@ xfs_alloc_lookup_le( | |||
243 | xfs_extlen_t len, /* length of extent */ | 248 | xfs_extlen_t len, /* length of extent */ |
244 | int *stat); /* success/failure */ | 249 | int *stat); /* success/failure */ |
245 | 250 | ||
251 | int /* error */ | ||
252 | xfs_alloc_lookup_ge( | ||
253 | struct xfs_btree_cur *cur, /* btree cursor */ | ||
254 | xfs_agblock_t bno, /* starting block of extent */ | ||
255 | xfs_extlen_t len, /* length of extent */ | ||
256 | int *stat); /* success/failure */ | ||
257 | |||
246 | int /* error */ | 258 | int /* error */ |
247 | xfs_alloc_get_rec( | 259 | xfs_alloc_get_rec( |
248 | struct xfs_btree_cur *cur, /* btree cursor */ | 260 | struct xfs_btree_cur *cur, /* btree cursor */ |