public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] vfs: Support FALLOC_FL_NO_HIDE_STALE flag with fallocate
@ 2018-06-15 10:51 Sig Shen
  2018-06-15 15:33 ` Theodore Y. Ts'o
  0 siblings, 1 reply; 2+ messages in thread
From: Sig Shen @ 2018-06-15 10:51 UTC (permalink / raw)
  Cc: sigshen, Philippe Ombredanne, Thomas Gleixner, Greg Kroah-Hartman,
	Kate Stewart, linux-kernel

FALLOC_FL_NO_HIDE_STALE flag must be set if user want to issue
a discard request for block devices. But vfs_fallocate() will
return with an error -EOPNOTSUPP indicating lack of support
if this flag is set.

fix it by allowing FALLOC_FL_NO_HIDE_STALE flag in vfs_fallocate

Fixes: 25f4c41415e5 ("block: implement (some of) fallocate for block devices")
Signed-off-by: Sig Shen <sigshen@synology.com>
---
 include/linux/falloc.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/linux/falloc.h b/include/linux/falloc.h
index 674d59f..770a122 100644
--- a/include/linux/falloc.h
+++ b/include/linux/falloc.h
@@ -27,6 +27,7 @@ struct space_resv {
 					 FALLOC_FL_COLLAPSE_RANGE |	\
 					 FALLOC_FL_ZERO_RANGE |		\
 					 FALLOC_FL_INSERT_RANGE |	\
+					 FALLOC_FL_NO_HIDE_STALE |	\
 					 FALLOC_FL_UNSHARE_RANGE)
 
 #endif /* _FALLOC_H_ */
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] vfs: Support FALLOC_FL_NO_HIDE_STALE flag with fallocate
  2018-06-15 10:51 [PATCH] vfs: Support FALLOC_FL_NO_HIDE_STALE flag with fallocate Sig Shen
@ 2018-06-15 15:33 ` Theodore Y. Ts'o
  0 siblings, 0 replies; 2+ messages in thread
From: Theodore Y. Ts'o @ 2018-06-15 15:33 UTC (permalink / raw)
  To: Sig Shen
  Cc: Philippe Ombredanne, Thomas Gleixner, Greg Kroah-Hartman,
	Kate Stewart, linux-kernel

On Fri, Jun 15, 2018 at 06:51:08PM +0800, Sig Shen wrote:
> FALLOC_FL_NO_HIDE_STALE flag must be set if user want to issue
> a discard request for block devices. But vfs_fallocate() will
> return with an error -EOPNOTSUPP indicating lack of support
> if this flag is set.
> 
> fix it by allowing FALLOC_FL_NO_HIDE_STALE flag in vfs_fallocate
> 
> Fixes: 25f4c41415e5 ("block: implement (some of) fallocate for block devices")
> Signed-off-by: Sig Shen <sigshen@synology.com>

The commit description is not quite correct.  What the NO_HIDE_STALE
flag does is allow a discard request for those block devices which do
not have the DISCARD_ZEROES_DATA flag.

I will note that the FALLOC_FL_NO_HIDE_STALE flag is a bit
controversial in linux-fsdevel.  I have a similar patch in the VFS in
Google's internal data center kernel, as well as an internal patch
which implements support for this flag in ext4.  However, the patches
are out of tree, because pretty much all of the file system developers
who work for enterpise distributions were against this functionality.

I know of one other major cloud provider (in China) using the
functionality as an out-of-tree patch, but with no one else speaking
in favor of it, and everyone else NAK'ing the patch and enterprise
distro's saying they would revert the patch in their distro kernels,
the compromise we came to was that the code point for NO_HIDE_STALE_FL
would be reserved so that users of the out-of-tree patches wouldn't
collide with future fallocate flags; and I would stop trying to push
the patches upstream.

I have no idea how Darrick was able to get commit 25f4c41415e5
upstream, but I guess it was less controversial for block devices than
for file systems.

So I'm certainly in favor of this patch landing in mainline, but you
should be aware that there may be some opposition to it.

Cheers,

					- Ted

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-06-15 15:33 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-15 10:51 [PATCH] vfs: Support FALLOC_FL_NO_HIDE_STALE flag with fallocate Sig Shen
2018-06-15 15:33 ` Theodore Y. Ts'o

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox