All of lore.kernel.org
 help / color / mirror / Atom feed
* automatic freeing of space on ENOSPC
@ 2021-06-28 19:49 J. Bruce Fields
  2021-06-29  0:43 ` Trond Myklebust
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: J. Bruce Fields @ 2021-06-28 19:49 UTC (permalink / raw)
  To: linux-fsdevel; +Cc: dai.ngo, linux-nfs

Is there anything analogous to a "shrinker", but for disk space?  So,
some hook that a filesystem could call to say "I'm running out of space,
could you please free something?", before giving up and returning
ENOSPC?

The NFS server currently revokes a client's state if the client fails to
contact it within a lease period (90 seconds by default).  That's
harsher than necessary--if a network partition lasts longer than a lease
period, but if nobody else needs that client's resources, it'd be nice
to be able to hang on to them so that the client could resume normal
operation after the network comes back.  So we'd delay revoking the
client's state until there's an actual conflict.  But that means we need
a way to clean up the client as soon as there is a conflict, to avoid
unnecessarily failing operations that conflict with resources held by an
expired client.

At first I thought we only needed to worry about file locks, but then I
realized clients can also hold references to files, which might be
unlinked.  I don't want a long-expired client to result in ENOSPC to
other filesystem users.

Any ideas?

I searched around and found this discussion of volatile ranges
https://lwn.net/Articles/522135/, which seems close, but I don't know if
anything came of that in the end.

--b.

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

end of thread, other threads:[~2021-06-29 18:39 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-28 19:49 automatic freeing of space on ENOSPC J. Bruce Fields
2021-06-29  0:43 ` Trond Myklebust
2021-06-29  1:12   ` bfields
2021-06-29  1:43     ` NeilBrown
2021-06-29  4:07       ` Amir Goldstein
2021-06-29 18:34         ` bfields
2021-06-29 18:32       ` bfields
2021-06-29 18:39         ` Chuck Lever III
2021-06-29  5:11 ` Dave Chinner
2021-06-29 18:37   ` J. Bruce Fields
2021-06-29 16:47 ` Theodore Ts'o
2021-06-29 18:38   ` J. Bruce Fields

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.