| .. | .. |
|---|
| 17 | 17 | #define XFS_EFI_MAX_FAST_EXTENTS 16 |
|---|
| 18 | 18 | |
|---|
| 19 | 19 | /* |
|---|
| 20 | | - * Define EFI flag bits. Manipulated by set/clear/test_bit operators. |
|---|
| 21 | | - */ |
|---|
| 22 | | -#define XFS_EFI_RECOVERED 1 |
|---|
| 23 | | - |
|---|
| 24 | | -/* |
|---|
| 25 | 20 | * This is the "extent free intention" log item. It is used to log the fact |
|---|
| 26 | 21 | * that some extents need to be free. It is used in conjunction with the |
|---|
| 27 | 22 | * "extent free done" log item described below. |
|---|
| .. | .. |
|---|
| 50 | 45 | * of commit failure or log I/O errors. Note that the EFD is not inserted in the |
|---|
| 51 | 46 | * AIL, so at this point both the EFI and EFD are freed. |
|---|
| 52 | 47 | */ |
|---|
| 53 | | -typedef struct xfs_efi_log_item { |
|---|
| 54 | | - xfs_log_item_t efi_item; |
|---|
| 48 | +struct xfs_efi_log_item { |
|---|
| 49 | + struct xfs_log_item efi_item; |
|---|
| 55 | 50 | atomic_t efi_refcount; |
|---|
| 56 | 51 | atomic_t efi_next_extent; |
|---|
| 57 | | - unsigned long efi_flags; /* misc flags */ |
|---|
| 58 | 52 | xfs_efi_log_format_t efi_format; |
|---|
| 59 | | -} xfs_efi_log_item_t; |
|---|
| 53 | +}; |
|---|
| 60 | 54 | |
|---|
| 61 | 55 | /* |
|---|
| 62 | 56 | * This is the "extent free done" log item. It is used to log |
|---|
| 63 | 57 | * the fact that some extents earlier mentioned in an efi item |
|---|
| 64 | 58 | * have been freed. |
|---|
| 65 | 59 | */ |
|---|
| 66 | | -typedef struct xfs_efd_log_item { |
|---|
| 67 | | - xfs_log_item_t efd_item; |
|---|
| 68 | | - xfs_efi_log_item_t *efd_efip; |
|---|
| 60 | +struct xfs_efd_log_item { |
|---|
| 61 | + struct xfs_log_item efd_item; |
|---|
| 62 | + struct xfs_efi_log_item *efd_efip; |
|---|
| 69 | 63 | uint efd_next_extent; |
|---|
| 70 | 64 | xfs_efd_log_format_t efd_format; |
|---|
| 71 | | -} xfs_efd_log_item_t; |
|---|
| 65 | +}; |
|---|
| 72 | 66 | |
|---|
| 73 | 67 | /* |
|---|
| 74 | 68 | * Max number of extents in fast allocation path. |
|---|
| .. | .. |
|---|
| 77 | 71 | |
|---|
| 78 | 72 | extern struct kmem_zone *xfs_efi_zone; |
|---|
| 79 | 73 | extern struct kmem_zone *xfs_efd_zone; |
|---|
| 80 | | - |
|---|
| 81 | | -xfs_efi_log_item_t *xfs_efi_init(struct xfs_mount *, uint); |
|---|
| 82 | | -xfs_efd_log_item_t *xfs_efd_init(struct xfs_mount *, xfs_efi_log_item_t *, |
|---|
| 83 | | - uint); |
|---|
| 84 | | -int xfs_efi_copy_format(xfs_log_iovec_t *buf, |
|---|
| 85 | | - xfs_efi_log_format_t *dst_efi_fmt); |
|---|
| 86 | | -void xfs_efi_item_free(xfs_efi_log_item_t *); |
|---|
| 87 | | -void xfs_efi_release(struct xfs_efi_log_item *); |
|---|
| 88 | | - |
|---|
| 89 | | -int xfs_efi_recover(struct xfs_mount *mp, |
|---|
| 90 | | - struct xfs_efi_log_item *efip); |
|---|
| 91 | 74 | |
|---|
| 92 | 75 | #endif /* __XFS_EXTFREE_ITEM_H__ */ |
|---|