aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_alloc.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2011-01-07 08:02:04 -0500
committerAlex Elder <aelder@sgi.com>2011-01-11 21:28:29 -0500
commita46db60834883c1c8c665d7fcc7b4ab66f5966fc (patch)
tree962f134a2c7f771cdafdae4ff6caa9e36693dce5 /fs/xfs/xfs_alloc.h
parentc58efdb442bb49dea1d148f207560c41918c1bf4 (diff)
xfs: add FITRIM support
Allow manual discards from userspace using the FITRIM ioctl. This is not intended to be run during normal workloads, as the freepsace btree walks can cause large performance degradation. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Alex Elder <aelder@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_alloc.h')
-rw-r--r--fs/xfs/xfs_alloc.h25
1 files changed, 20 insertions, 5 deletions
diff --git a/fs/xfs/xfs_alloc.h b/fs/xfs/xfs_alloc.h
index 895009a97271..0ab56b32c7eb 100644
--- a/fs/xfs/xfs_alloc.h
+++ b/fs/xfs/xfs_alloc.h
@@ -19,6 +19,7 @@
19#define __XFS_ALLOC_H__ 19#define __XFS_ALLOC_H__
20 20
21struct xfs_buf; 21struct xfs_buf;
22struct xfs_btree_cur;
22struct xfs_mount; 23struct xfs_mount;
23struct xfs_perag; 24struct xfs_perag;
24struct xfs_trans; 25struct xfs_trans;
@@ -118,16 +119,16 @@ xfs_alloc_longest_free_extent(struct xfs_mount *mp,
118 struct xfs_perag *pag); 119 struct xfs_perag *pag);
119 120
120#ifdef __KERNEL__ 121#ifdef __KERNEL__
121
122void 122void
123xfs_alloc_busy_insert(xfs_trans_t *tp, 123xfs_alloc_busy_insert(struct xfs_trans *tp, xfs_agnumber_t agno,
124 xfs_agnumber_t agno, 124 xfs_agblock_t bno, xfs_extlen_t len);
125 xfs_agblock_t bno,
126 xfs_extlen_t len);
127 125
128void 126void
129xfs_alloc_busy_clear(struct xfs_mount *mp, struct xfs_busy_extent *busyp); 127xfs_alloc_busy_clear(struct xfs_mount *mp, struct xfs_busy_extent *busyp);
130 128
129int
130xfs_alloc_busy_search(struct xfs_mount *mp, xfs_agnumber_t agno,
131 xfs_agblock_t bno, xfs_extlen_t len);
131#endif /* __KERNEL__ */ 132#endif /* __KERNEL__ */
132 133
133/* 134/*
@@ -205,4 +206,18 @@ xfs_free_extent(
205 xfs_fsblock_t bno, /* starting block number of extent */ 206 xfs_fsblock_t bno, /* starting block number of extent */
206 xfs_extlen_t len); /* length of extent */ 207 xfs_extlen_t len); /* length of extent */
207 208
209int /* error */
210xfs_alloc_lookup_le(
211 struct xfs_btree_cur *cur, /* btree cursor */
212 xfs_agblock_t bno, /* starting block of extent */
213 xfs_extlen_t len, /* length of extent */
214 int *stat); /* success/failure */
215
216int /* error */
217xfs_alloc_get_rec(
218 struct xfs_btree_cur *cur, /* btree cursor */
219 xfs_agblock_t *bno, /* output: starting block of extent */
220 xfs_extlen_t *len, /* output: length of extent */
221 int *stat); /* output: success/failure */
222
208#endif /* __XFS_ALLOC_H__ */ 223#endif /* __XFS_ALLOC_H__ */