From: "Aneesh Kumar K. V" <aneesh.kumar-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
To: Sage Weil <sage-BnTBU8nroG7k1uMJSBkQmQ@public.gmane.org>,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Jonathan Nieder
<jrnieder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org,
linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [RFC] introduce sys_syncfs to sync a single file system (v2)
Date: Tue, 08 Mar 2011 10:57:00 +0530 [thread overview]
Message-ID: <8762ruchcr.fsf@linux.vnet.ibm.com> (raw)
In-Reply-To: <Pine.LNX.4.64.1103071515070.11152-vIokxiIdD2AQNTJnQDzGJqxOck334EZe@public.gmane.org>
On Mon, 7 Mar 2011 15:17:57 -0800 (PST), Sage Weil <sage-BnTBU8nroG7k1uMJSBkQmQ@public.gmane.org> 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 <sage-BnTBU8nroG7k1uMJSBkQmQ@public.gmane.org>
> ---
> 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
WARNING: multiple messages have this Message-ID (diff)
From: "Aneesh Kumar K. V" <aneesh.kumar@linux.vnet.ibm.com>
To: Sage Weil <sage@newdream.net>, linux-fsdevel@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
Jonathan Nieder <jrnieder@gmail.com>,
akpm@linux-foundation.org, linux-api@vger.kernel.org
Subject: Re: [RFC] introduce sys_syncfs to sync a single file system (v2)
Date: Tue, 08 Mar 2011 10:57:00 +0530 [thread overview]
Message-ID: <8762ruchcr.fsf@linux.vnet.ibm.com> (raw)
In-Reply-To: <Pine.LNX.4.64.1103071515070.11152@cobra.newdream.net>
On Mon, 7 Mar 2011 15:17:57 -0800 (PST), Sage Weil <sage@newdream.net> 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 <sage@newdream.net>
> ---
> 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
next prev parent reply other threads:[~2011-03-08 5:27 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-03 6:35 [RFC] introduce sys_syncat to sync a single file system Sage Weil
[not found] ` <Pine.LNX.4.64.1102171035220.13904-vIokxiIdD2AQNTJnQDzGJqxOck334EZe@public.gmane.org>
2011-03-03 7:22 ` Jonathan Nieder
2011-03-03 7:22 ` Jonathan Nieder
2011-03-03 8:54 ` Aneesh Kumar K. V
2011-03-03 8:54 ` Aneesh Kumar K. V
[not found] ` <87bp1sziqn.fsf-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2011-03-07 23:17 ` [RFC] introduce sys_syncfs to sync a single file system (v2) Sage Weil
2011-03-07 23:17 ` Sage Weil
[not found] ` <Pine.LNX.4.64.1103071515070.11152-vIokxiIdD2AQNTJnQDzGJqxOck334EZe@public.gmane.org>
2011-03-08 5:27 ` Aneesh Kumar K. V [this message]
2011-03-08 5:27 ` Aneesh Kumar K. V
[not found] ` <8762ruchcr.fsf-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2011-03-10 14:56 ` Arnd Bergmann
2011-03-10 14:56 ` Arnd Bergmann
[not found] ` <201103101556.44698.arnd-r2nGTMty4D4@public.gmane.org>
2011-03-10 19:28 ` Sage Weil
2011-03-10 19:28 ` Sage Weil
2011-03-10 19:31 ` [PATCH v3] introduce sys_syncfs to sync a single file system Sage Weil
2011-03-10 22:08 ` Arnd Bergmann
[not found] ` <Pine.LNX.4.64.1103101125150.4190-vIokxiIdD2AQNTJnQDzGJqxOck334EZe@public.gmane.org>
2011-03-11 4:44 ` Aneesh Kumar K. V
2011-03-11 4:44 ` Aneesh Kumar K. V
2011-03-11 11:01 ` Indan Zupancic
[not found] ` <edfa4cf081249734807e582c14253fca.squirrel-2RFepEojUI3wYrDfM2ltn5vKXLoBo5SK@public.gmane.org>
2011-03-11 11:55 ` Arnd Bergmann
2011-03-11 11:55 ` Arnd Bergmann
[not found] ` <201103111255.44979.arnd-r2nGTMty4D4@public.gmane.org>
2011-03-11 23:45 ` Indan Zupancic
2011-03-11 23:45 ` Indan Zupancic
2011-03-11 23:56 ` Jonathan Nieder
2011-03-12 1:53 ` Indan Zupancic
2011-03-12 1:53 ` Indan Zupancic
[not found] ` <9446ab1a2315c0d2476c30f8315a0503.squirrel-2RFepEojUI3wYrDfM2ltn5vKXLoBo5SK@public.gmane.org>
2011-03-12 2:10 ` Jonathan Nieder
2011-03-12 2:10 ` Jonathan Nieder
2011-03-12 4:22 ` Indan Zupancic
2011-03-12 4:22 ` Indan Zupancic
2011-03-12 17:32 ` Greg KH
[not found] ` <20110312173217.GA24981-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2011-03-14 1:56 ` Indan Zupancic
2011-03-14 1:56 ` Indan Zupancic
[not found] ` <1e597aedd3d7825dcc0630b1cf2399fa.squirrel-2RFepEojUI3wYrDfM2ltn5vKXLoBo5SK@public.gmane.org>
2011-03-14 4:29 ` Sage Weil
2011-03-14 4:29 ` Sage Weil
2011-03-14 9:27 ` Indan Zupancic
2011-03-14 10:22 ` Theodore Tso
[not found] ` <Pine.LNX.4.64.1103132114380.5145-vIokxiIdD2AQNTJnQDzGJqxOck334EZe@public.gmane.org>
2011-03-15 10:11 ` Dave Chinner
2011-03-15 10:11 ` Dave Chinner
2011-03-15 13:00 ` Sage Weil
2011-03-15 15:56 ` Andreas Dilger
2011-03-15 16:08 ` Sage Weil
2011-03-15 20:18 ` Andrew Morton
2011-03-14 20:10 ` Andrew Morton
2011-03-14 20:10 ` Andrew Morton
2011-03-14 20:29 ` Artem Bityutskiy
2011-03-14 20:29 ` Artem Bityutskiy
2011-03-14 21:11 ` Ted Ts'o
2011-03-14 21:20 ` Andrew Morton
[not found] ` <20110314142032.b9523309.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2011-03-14 23:17 ` Ted Ts'o
2011-03-14 23:17 ` Ted Ts'o
2011-03-14 21:22 ` Arnd Bergmann
2011-03-12 0:40 ` Ric Wheeler
[not found] ` <4D7AC0FE.8070806-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-03-12 1:33 ` Indan Zupancic
2011-03-12 1:33 ` Indan Zupancic
[not found] ` <1d4d1b7ae64da97f44cad0e2bda4f832.squirrel-2RFepEojUI3wYrDfM2ltn5vKXLoBo5SK@public.gmane.org>
2011-03-12 2:52 ` Ric Wheeler
2011-03-12 2:52 ` Ric Wheeler
[not found] ` <4D7ADFDD.9080108-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-03-12 3:50 ` Indan Zupancic
2011-03-12 3:50 ` Indan Zupancic
2011-03-12 12:41 ` Ric Wheeler
[not found] ` <e118a1458c29e4f44bf71c7095e4bce8.squirrel-2RFepEojUI3wYrDfM2ltn5vKXLoBo5SK@public.gmane.org>
2011-03-12 18:31 ` Jeff Garzik
2011-03-12 18:31 ` Jeff Garzik
2011-03-14 1:31 ` Indan Zupancic
2011-03-14 1:37 ` Theodore Tso
2011-03-14 1:47 ` Indan Zupancic
2011-03-14 1:45 ` Jeff Garzik
[not found] ` <4D7D7325.2040708-o2qLIJkoznsdnm+yROfE0A@public.gmane.org>
2011-03-14 1:59 ` Indan Zupancic
2011-03-14 1:59 ` Indan Zupancic
2011-03-12 19:28 ` Artem Bityutskiy
2011-03-12 19:28 ` Artem Bityutskiy
2011-03-12 19:22 ` Artem Bityutskiy
2011-03-12 19:22 ` Artem Bityutskiy
2011-03-14 1:38 ` Indan Zupancic
2011-03-14 1:38 ` Indan Zupancic
[not found] ` <3cc2c5c6fa6b3bd384017ae95a4241ab.squirrel-2RFepEojUI3wYrDfM2ltn5vKXLoBo5SK@public.gmane.org>
2011-03-14 5:52 ` Artem Bityutskiy
2011-03-14 5:52 ` Artem Bityutskiy
2011-03-13 20:59 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8762ruchcr.fsf@linux.vnet.ibm.com \
--to=aneesh.kumar-23vcf4htsmix0ybbhkvfkdbpr1lh4cv8@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=jrnieder-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=sage-BnTBU8nroG7k1uMJSBkQmQ@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.