Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753424Ab1CHF1L (ORCPT ); Tue, 8 Mar 2011 00:27:11 -0500 Received: from e23smtp03.au.ibm.com ([202.81.31.145]:60959 "EHLO e23smtp03.au.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751141Ab1CHF1J (ORCPT ); Tue, 8 Mar 2011 00:27:09 -0500 From: "Aneesh Kumar K. V" To: Sage Weil , linux-fsdevel@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Jonathan Nieder , akpm@linux-foundation.org, linux-api@vger.kernel.org Subject: Re: [RFC] introduce sys_syncfs to sync a single file system (v2) In-Reply-To: References: <20110303072223.GA28133@elie> <87bp1sziqn.fsf@linux.vnet.ibm.com> User-Agent: Notmuch/0.5-66-g70c5e2c (http://notmuchmail.org) Emacs/23.1.1 (i686-pc-linux-gnu) Date: Tue, 08 Mar 2011 10:57:00 +0530 Message-ID: <8762ruchcr.fsf@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2548 Lines: 64 On Mon, 7 Mar 2011 15:17:57 -0800 (PST), Sage Weil wrote: > Changes: > v1->v2: Rename, simplify to just take an fd. > > It is frequently useful to sync a single file system, instead of all > mounted file systems via sync(2): > > - On machines with many mounts, it is not at all uncommon for some of > them to hang (e.g. unresponsive NFS server). sync(2) will get stuck on > those and may never get to the one you do care about (e.g., /). > - Some applications write lots of data to the file system and then > want to make sure it is flushed to disk. Calling fsync(2) on each > file introduces unnecessary ordering constraints that result in a large > amount of sub-optimal writeback/flush/commit behavior by the file > system. > > There are currently two ways (that I know of) to sync a single super_block: > > - BLKFLSBUF ioctl on the block device: That also invalidates the bdev > mapping, which isn't usually desirable, and doesn't work for non-block > file systems. > - 'mount -o remount,rw' will call sync_filesystem as an artifact of the > current implemention. Relying on this little-known side effect for > something like data safety sounds foolish. > > Both of these approaches require root privileges, which some applications > do not have (nor should they need?) given that sync(2) is an unprivileged > operation. > > This patch introduces a new system call syncfs(2) that takes an fd and > syncs only the file system it references. Maybe someday we can even > > $ sync /some/path > > and not get > > sync: ignoring all arguments > > The syscall is motivated by comments by Al and Christoph at the last LSF. > syncfs(2) seems like an appropriate name given statfs(2). > > A similar ioctl was also proposed a while back, see > http://marc.info/?l=linux-fsdevel&m=127970513829285&w=2 > > Signed-off-by: Sage Weil > --- > arch/x86/ia32/ia32entry.S | 1 + > arch/x86/include/asm/unistd_32.h | 3 ++- > arch/x86/include/asm/unistd_64.h | 2 ++ > arch/x86/kernel/syscall_table_32.S | 1 + > fs/sync.c | 24 ++++++++++++++++++++++++ > 5 files changed, 30 insertions(+), 1 deletions(-) include/asm-generic/unistd.h may also need an update. -aneesh -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/