diff options
author | Dave Chinner <dchinner@redhat.com> | 2015-01-08 18:46:49 -0500 |
---|---|---|
committer | Dave Chinner <david@fromorbit.com> | 2015-01-08 18:46:49 -0500 |
commit | 9799b438ce21662fa173ffc0b30d93567a71dfa0 (patch) | |
tree | 24e7973b7c2c6d1a9fb898b970f685f061fb9c4f /fs | |
parent | 5ebdc213ac02877e23fe7594d4b92b120488aac9 (diff) |
xfs: move struct xfs_bmalloca to libxfs
It no long is used for stack splits, so strip the kernel workqueue
bits from it and push it back into libxfs/xfs_bmap.h so that
it can be shared with the userspace code.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/xfs/libxfs/xfs_bmap.h | 31 | ||||
-rw-r--r-- | fs/xfs/xfs_bmap_util.h | 35 |
2 files changed, 32 insertions, 34 deletions
diff --git a/fs/xfs/libxfs/xfs_bmap.h b/fs/xfs/libxfs/xfs_bmap.h index 44db6db86402..856f53c33f4e 100644 --- a/fs/xfs/libxfs/xfs_bmap.h +++ b/fs/xfs/libxfs/xfs_bmap.h | |||
@@ -28,6 +28,37 @@ struct xfs_trans; | |||
28 | extern kmem_zone_t *xfs_bmap_free_item_zone; | 28 | extern kmem_zone_t *xfs_bmap_free_item_zone; |
29 | 29 | ||
30 | /* | 30 | /* |
31 | * Argument structure for xfs_bmap_alloc. | ||
32 | */ | ||
33 | struct xfs_bmalloca { | ||
34 | xfs_fsblock_t *firstblock; /* i/o first block allocated */ | ||
35 | struct xfs_bmap_free *flist; /* bmap freelist */ | ||
36 | struct xfs_trans *tp; /* transaction pointer */ | ||
37 | struct xfs_inode *ip; /* incore inode pointer */ | ||
38 | struct xfs_bmbt_irec prev; /* extent before the new one */ | ||
39 | struct xfs_bmbt_irec got; /* extent after, or delayed */ | ||
40 | |||
41 | xfs_fileoff_t offset; /* offset in file filling in */ | ||
42 | xfs_extlen_t length; /* i/o length asked/allocated */ | ||
43 | xfs_fsblock_t blkno; /* starting block of new extent */ | ||
44 | |||
45 | struct xfs_btree_cur *cur; /* btree cursor */ | ||
46 | xfs_extnum_t idx; /* current extent index */ | ||
47 | int nallocs;/* number of extents alloc'd */ | ||
48 | int logflags;/* flags for transaction logging */ | ||
49 | |||
50 | xfs_extlen_t total; /* total blocks needed for xaction */ | ||
51 | xfs_extlen_t minlen; /* minimum allocation size (blocks) */ | ||
52 | xfs_extlen_t minleft; /* amount must be left after alloc */ | ||
53 | bool eof; /* set if allocating past last extent */ | ||
54 | bool wasdel; /* replacing a delayed allocation */ | ||
55 | bool userdata;/* set if is user data */ | ||
56 | bool aeof; /* allocated space at eof */ | ||
57 | bool conv; /* overwriting unwritten extents */ | ||
58 | int flags; | ||
59 | }; | ||
60 | |||
61 | /* | ||
31 | * List of extents to be free "later". | 62 | * List of extents to be free "later". |
32 | * The list is kept sorted on xbf_startblock. | 63 | * The list is kept sorted on xbf_startblock. |
33 | */ | 64 | */ |
diff --git a/fs/xfs/xfs_bmap_util.h b/fs/xfs/xfs_bmap_util.h index 2fdb72d2c908..1fce0f364829 100644 --- a/fs/xfs/xfs_bmap_util.h +++ b/fs/xfs/xfs_bmap_util.h | |||
@@ -26,40 +26,7 @@ struct xfs_ifork; | |||
26 | struct xfs_inode; | 26 | struct xfs_inode; |
27 | struct xfs_mount; | 27 | struct xfs_mount; |
28 | struct xfs_trans; | 28 | struct xfs_trans; |
29 | 29 | struct xfs_bmalloca; | |
30 | /* | ||
31 | * Argument structure for xfs_bmap_alloc. | ||
32 | */ | ||
33 | struct xfs_bmalloca { | ||
34 | xfs_fsblock_t *firstblock; /* i/o first block allocated */ | ||
35 | struct xfs_bmap_free *flist; /* bmap freelist */ | ||
36 | struct xfs_trans *tp; /* transaction pointer */ | ||
37 | struct xfs_inode *ip; /* incore inode pointer */ | ||
38 | struct xfs_bmbt_irec prev; /* extent before the new one */ | ||
39 | struct xfs_bmbt_irec got; /* extent after, or delayed */ | ||
40 | |||
41 | xfs_fileoff_t offset; /* offset in file filling in */ | ||
42 | xfs_extlen_t length; /* i/o length asked/allocated */ | ||
43 | xfs_fsblock_t blkno; /* starting block of new extent */ | ||
44 | |||
45 | struct xfs_btree_cur *cur; /* btree cursor */ | ||
46 | xfs_extnum_t idx; /* current extent index */ | ||
47 | int nallocs;/* number of extents alloc'd */ | ||
48 | int logflags;/* flags for transaction logging */ | ||
49 | |||
50 | xfs_extlen_t total; /* total blocks needed for xaction */ | ||
51 | xfs_extlen_t minlen; /* minimum allocation size (blocks) */ | ||
52 | xfs_extlen_t minleft; /* amount must be left after alloc */ | ||
53 | bool eof; /* set if allocating past last extent */ | ||
54 | bool wasdel; /* replacing a delayed allocation */ | ||
55 | bool userdata;/* set if is user data */ | ||
56 | bool aeof; /* allocated space at eof */ | ||
57 | bool conv; /* overwriting unwritten extents */ | ||
58 | int flags; | ||
59 | struct completion *done; | ||
60 | struct work_struct work; | ||
61 | int result; | ||
62 | }; | ||
63 | 30 | ||
64 | int xfs_bmap_finish(struct xfs_trans **tp, struct xfs_bmap_free *flist, | 31 | int xfs_bmap_finish(struct xfs_trans **tp, struct xfs_bmap_free *flist, |
65 | int *committed); | 32 | int *committed); |