diff options
Diffstat (limited to 'fs/xfs/xfs_bmap.h')
-rw-r--r-- | fs/xfs/xfs_bmap.h | 72 |
1 files changed, 39 insertions, 33 deletions
diff --git a/fs/xfs/xfs_bmap.h b/fs/xfs/xfs_bmap.h index 9f3e3a836d15..284571c05ed0 100644 --- a/fs/xfs/xfs_bmap.h +++ b/fs/xfs/xfs_bmap.h | |||
@@ -137,9 +137,7 @@ typedef struct xfs_bmalloca { | |||
137 | char conv; /* overwriting unwritten extents */ | 137 | char conv; /* overwriting unwritten extents */ |
138 | } xfs_bmalloca_t; | 138 | } xfs_bmalloca_t; |
139 | 139 | ||
140 | #ifdef __KERNEL__ | 140 | #if defined(__KERNEL__) && defined(XFS_BMAP_TRACE) |
141 | |||
142 | #if defined(XFS_BMAP_TRACE) | ||
143 | /* | 141 | /* |
144 | * Trace operations for bmap extent tracing | 142 | * Trace operations for bmap extent tracing |
145 | */ | 143 | */ |
@@ -163,9 +161,12 @@ xfs_bmap_trace_exlist( | |||
163 | int whichfork); /* data or attr fork */ | 161 | int whichfork); /* data or attr fork */ |
164 | #define XFS_BMAP_TRACE_EXLIST(ip,c,w) \ | 162 | #define XFS_BMAP_TRACE_EXLIST(ip,c,w) \ |
165 | xfs_bmap_trace_exlist(__func__,ip,c,w) | 163 | xfs_bmap_trace_exlist(__func__,ip,c,w) |
166 | #else | 164 | |
165 | #else /* __KERNEL__ && XFS_BMAP_TRACE */ | ||
166 | |||
167 | #define XFS_BMAP_TRACE_EXLIST(ip,c,w) | 167 | #define XFS_BMAP_TRACE_EXLIST(ip,c,w) |
168 | #endif | 168 | |
169 | #endif /* __KERNEL__ && XFS_BMAP_TRACE */ | ||
169 | 170 | ||
170 | /* | 171 | /* |
171 | * Convert inode from non-attributed to attributed. | 172 | * Convert inode from non-attributed to attributed. |
@@ -206,20 +207,6 @@ xfs_bmap_compute_maxlevels( | |||
206 | int whichfork); /* data or attr fork */ | 207 | int whichfork); /* data or attr fork */ |
207 | 208 | ||
208 | /* | 209 | /* |
209 | * Routine to be called at transaction's end by xfs_bmapi, xfs_bunmapi | ||
210 | * caller. Frees all the extents that need freeing, which must be done | ||
211 | * last due to locking considerations. | ||
212 | * | ||
213 | * Return 1 if the given transaction was committed and a new one allocated, | ||
214 | * and 0 otherwise. | ||
215 | */ | ||
216 | int /* error */ | ||
217 | xfs_bmap_finish( | ||
218 | struct xfs_trans **tp, /* transaction pointer addr */ | ||
219 | xfs_bmap_free_t *flist, /* i/o: list extents to free */ | ||
220 | int *committed); /* xact committed or not */ | ||
221 | |||
222 | /* | ||
223 | * Returns the file-relative block number of the first unused block in the file. | 210 | * Returns the file-relative block number of the first unused block in the file. |
224 | * This is the lowest-address hole if the file has holes, else the first block | 211 | * This is the lowest-address hole if the file has holes, else the first block |
225 | * past the end of file. | 212 | * past the end of file. |
@@ -344,14 +331,43 @@ xfs_bunmapi( | |||
344 | int *done); /* set if not done yet */ | 331 | int *done); /* set if not done yet */ |
345 | 332 | ||
346 | /* | 333 | /* |
347 | * Fcntl interface to xfs_bmapi. | 334 | * Check an extent list, which has just been read, for |
335 | * any bit in the extent flag field. | ||
336 | */ | ||
337 | int | ||
338 | xfs_check_nostate_extents( | ||
339 | struct xfs_ifork *ifp, | ||
340 | xfs_extnum_t idx, | ||
341 | xfs_extnum_t num); | ||
342 | |||
343 | #ifdef __KERNEL__ | ||
344 | |||
345 | /* | ||
346 | * Routine to be called at transaction's end by xfs_bmapi, xfs_bunmapi | ||
347 | * caller. Frees all the extents that need freeing, which must be done | ||
348 | * last due to locking considerations. | ||
349 | * | ||
350 | * Return 1 if the given transaction was committed and a new one allocated, | ||
351 | * and 0 otherwise. | ||
352 | */ | ||
353 | int /* error */ | ||
354 | xfs_bmap_finish( | ||
355 | struct xfs_trans **tp, /* transaction pointer addr */ | ||
356 | xfs_bmap_free_t *flist, /* i/o: list extents to free */ | ||
357 | int *committed); /* xact committed or not */ | ||
358 | |||
359 | /* bmap to userspace formatter - copy to user & advance pointer */ | ||
360 | typedef int (*xfs_bmap_format_t)(void **, struct getbmapx *, int *); | ||
361 | |||
362 | /* | ||
363 | * Get inode's extents as described in bmv, and format for output. | ||
348 | */ | 364 | */ |
349 | int /* error code */ | 365 | int /* error code */ |
350 | xfs_getbmap( | 366 | xfs_getbmap( |
351 | xfs_inode_t *ip, | 367 | xfs_inode_t *ip, |
352 | struct getbmap *bmv, /* user bmap structure */ | 368 | struct getbmapx *bmv, /* user bmap structure */ |
353 | void __user *ap, /* pointer to user's array */ | 369 | xfs_bmap_format_t formatter, /* format to user */ |
354 | int iflags); /* interface flags */ | 370 | void *arg); /* formatter arg */ |
355 | 371 | ||
356 | /* | 372 | /* |
357 | * Check if the endoff is outside the last extent. If so the caller will grow | 373 | * Check if the endoff is outside the last extent. If so the caller will grow |
@@ -375,16 +391,6 @@ xfs_bmap_count_blocks( | |||
375 | int *count); | 391 | int *count); |
376 | 392 | ||
377 | /* | 393 | /* |
378 | * Check an extent list, which has just been read, for | ||
379 | * any bit in the extent flag field. | ||
380 | */ | ||
381 | int | ||
382 | xfs_check_nostate_extents( | ||
383 | struct xfs_ifork *ifp, | ||
384 | xfs_extnum_t idx, | ||
385 | xfs_extnum_t num); | ||
386 | |||
387 | /* | ||
388 | * Search the extent records for the entry containing block bno. | 394 | * Search the extent records for the entry containing block bno. |
389 | * If bno lies in a hole, point to the next entry. If bno lies | 395 | * If bno lies in a hole, point to the next entry. If bno lies |
390 | * past eof, *eofp will be set, and *prevp will contain the last | 396 | * past eof, *eofp will be set, and *prevp will contain the last |