From patchwork Wed Mar 20 12:48:17 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Monakhov X-Patchwork-Id: 229376 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id CB9902C00AF for ; Wed, 20 Mar 2013 23:49:21 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934298Ab3CTMtT (ORCPT ); Wed, 20 Mar 2013 08:49:19 -0400 Received: from mailhub.sw.ru ([195.214.232.25]:39059 "EHLO relay.sw.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933916Ab3CTMtR (ORCPT ); Wed, 20 Mar 2013 08:49:17 -0400 Received: from mct-mail.qa.sw.ru ([10.29.1.112]) by relay.sw.ru (8.13.4/8.13.4) with ESMTP id r2KCmLZ6026337; Wed, 20 Mar 2013 16:48:22 +0400 (MSK) From: Dmitry Monakhov To: linux-ext4@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org, viro@ZenIV.linux.org.uk, jack@suse.cz, Dmitry Monakhov Subject: [PATCH 1/2] ext4: grab write access inside ext4_file_dio_write Date: Wed, 20 Mar 2013 16:48:17 +0400 Message-Id: <1363783698-28092-1-git-send-email-dmonakhov@openvz.org> X-Mailer: git-send-email 1.7.7.6 Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org We are responsible hold write count before any fs-speciffic modifications This patch should fix following warning: WARNING: at fs/ext4/ext4_jbd2.c:50 __ext4_journal_start_sb+0x132/0x240() Call Trace: [] warn_slowpath_common+0xad/0xf0 [] ? ext4_da_write_begin+0x277/0x4f0 [] warn_slowpath_null+0x1a/0x20 [] __ext4_journal_start_sb+0x132/0x240 [] ext4_da_write_begin+0x277/0x4f0 [] generic_perform_write+0x148/0x3c0 [] generic_file_buffered_write+0x64/0xd0 [] __generic_file_aio_write+0x4d0/0x750 [] ext4_file_dio_write+0x253/0x4e0 [] ext4_file_write+0xd1/0x190 [] do_sync_write+0xb2/0x120 [] ? rw_verify_area+0x12c/0x270 [] vfs_write+0x182/0x1f0 [] ? sysret_check+0x22/0x5d [] sys_write+0x94/0xd0 [] system_call_fastpath+0x16/0x1b Signed-off-by: Dmitry Monakhov --- fs/ext4/file.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/fs/ext4/file.c b/fs/ext4/file.c index 7e85a10..99918e4 100644 --- a/fs/ext4/file.c +++ b/fs/ext4/file.c @@ -106,6 +106,7 @@ ext4_file_dio_write(struct kiocb *iocb, const struct iovec *iov, !is_sync_kiocb(iocb)) unaligned_aio = ext4_unaligned_aio(inode, iov, nr_segs, pos); + sb_start_write(inode->i_sb); /* Unaligned direct AIO must be serialized; see comment above */ if (unaligned_aio) { mutex_lock(ext4_aio_mutex(inode)); @@ -160,6 +161,7 @@ ext4_file_dio_write(struct kiocb *iocb, const struct iovec *iov, if (unaligned_aio) mutex_unlock(ext4_aio_mutex(inode)); + sb_end_write(inode->i_sb); return ret; }