On 01/28/13 07:38, Jeff Liu wrote:
Sync the new helper xfs_calc_buf_res() to the user space.
Signed-off-by: Jie Liu<jeff.liu@xxxxxxxxxx>
libxfs/xfs_trans.c | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/libxfs/xfs_trans.c b/libxfs/xfs_trans.c
index 635de8f..d7ff1a9 100644
@@ -23,6 +23,35 @@ kmem_zone_t *xfs_trans_zone;
+ * A buffer has a format structure overhead in the log in addition
+ * to the data, so we need to take this into account when reserving
+ * space in a transaction for a buffer. Round the space required up
+ * to a multiple of 128 bytes so that we don't change the historical
+ * reservation that has been used for this overhead.
+ return round_up(sizeof(struct xlog_op_header) +
+ sizeof(struct xfs_buf_log_format), 128);
+ * Calculate out transaction log reservation per item in bytes.
+ * The nbufs argument is used to indicate the number of items that
+ * will be changed in a transaction. size is used to tell how many
+ * bytes should be reserved per item.
+ uint nbufs,
+ uint size)
+ return nbufs * (size + xfs_buf_log_overhead());
* Various log reservation values.
* These are based on the size of the file system block because that is what
Reviewed-by: Mark Tinguely <tinguely@xxxxxxx>