From: Brian Foster Date: Fri, 7 Feb 2014 03:55:54 +0000 (+1100) Subject: xfs: use tr_qm_dqalloc log reservation for dquot alloc X-Git-Tag: v3.15-rc1~90^2~7^2~4 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=410b11a675dca827e893f07c3155691eda3b5887;p=pandora-kernel.git xfs: use tr_qm_dqalloc log reservation for dquot alloc The dquot allocation path in xfs_qm_dqread() currently uses the attribute set log reservation, which appears to be incorrect. We have reports of transaction reservation overruns with the current code. E.g., a repeated run of xfstests test generic/270 on a 512b block size fs occassionally produces the following in dmesg: XFS (sdN): xlog_write: reservation summary: trans type = QM_DQALLOC (30) unit res = 7080 bytes current res = -632 bytes total reg = 0 bytes (o/flow = 0 bytes) ophdrs = 0 (ophdr space = 0 bytes) ophdr + reg = 0 bytes num regions = 0 XFS (sdN): xlog_write: reservation ran out. Need to up reservation The dquot allocation case should consist of a write reservation (i.e., we are allocating a range of the internal quota file) plus the size of the actual dquots. We already have a log reservation definition for this operation (tr_qm_dqalloc). Use it in xfs_qm_dqread() and update the log reservation calculation function to use the write res. calculation function rather than reading the assumed to be pre-calculated value directly. Signed-off-by: Brian Foster Reviewed-by: Jie Liu Reviewed-by: Ben Myers Signed-off-by: Dave Chinner --- Reading git-diff-tree failed