In kernel 3.10, when there is no memory left in the system, fs_buf_associate_memory can fail, catch the error and return. Signed-off-by: Zhen Zhao <zp_8483@xxxxxxx> --- fs/xfs/xfs_log.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 2e5581bc..32a41bf5 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -1916,8 +1916,11 @@ xlog_sync( if (split) { bp = iclog->ic_log->l_xbuf; XFS_BUF_SET_ADDR(bp, 0); /* logical 0 */ - xfs_buf_associate_memory(bp, + error = xfs_buf_associate_memory(bp, (char *)&iclog->ic_header + count, split); + if (error) + return error; + bp->b_fspriv = iclog; bp->b_flags &= ~XBF_FLUSH; bp->b_flags |= (XBF_ASYNC | XBF_SYNCIO | XBF_WRITE | XBF_FUA); -- 2.27.0