Re: NFS sillyrename side effect

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2010-10-19 at 08:40 +0200, Benny Halevy wrote:
> On 2010-10-18 19:10, J. Bruce Fields wrote:
> > On Mon, Oct 18, 2010 at 11:01:38AM -0400, Jeff Layton wrote:
> >> On Mon, 18 Oct 2010 15:53:44 +0100
> >> ClÃudio Martins <ctpm@xxxxxxxxxx> wrote:
> >>
> >>>
> >>> On Mon, 18 Oct 2010 15:48:11 +0100 ClÃudio Martins <ctpm@xxxxxxxxxx> wrote:
> >>>>
> >>>>  Section D2 ends with:
> >>>>
> >>>> "The NFS version 4 protocol is stateful, and could actually support
> >>>> delete-on-last-close. Unfortunately there isn't an easy way to do this
> >>>> and remain backwards-compatible with version 2 and 3 accessors."
> >>>>
> >>>>  So, theoretically, could one modify the code to selectively disable
> >>>> silly rename on a client, when it knows it is talking v4 with the
> >>>> server?
> >>>>
> >>>
> >>>  BTW, to clarify, I'm assuming a scenario where the server is
> >>> configured to talk v4 only, which I suspect should be common, at least
> >>> when you're relying on v4 kerberos security.
> >>>
> >>
> >> Sadly, no...
> >>
> >> The server does generally hold the file open as long as the client has
> >> the file open. So, you could delete the file while nfsd has it open and
> >> everything would probably still work.
> >>
> >> Suppose though that the server crashes and reboots. When it comes back
> >> up, fsck figures out that the file has been unlinked and frees the
> >> blocks on the disk. Now you can't reclaim the state on the open file.
> >>
> >> We're pretty much stuck with silly-renaming even for v4.
> > 
> > The server could do something like rename the file into a special
> > directory somewhere 
> 
> The clients can do something similar too, like sillyrenaming the
> files onto <mountpoint>/.unlinked_while_opened.<client-id>
> Removing this directory when it empties.

This would require access, directory create, and delete permissions for
the directory '<mountpoint>/', which is not always a given.

Besides, what if the server reboots, and my clientid changes?

Trond
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux