Re: [PATCH RFC v3] vfs: make fstatat retry once on ESTALE errors from getattr call

From: Miklos Szeredi
Date: Mon Apr 23 2012 - 11:28:15 EST


Jeff Layton <jlayton@xxxxxxxxxx> writes:

>
> Ok, but again, that only applies to the lookup. It has no bearing on
> the subsequent operation. For instance, if we're doing:
>
> rename("/foo", "/bar");
>
> ...and another client is simultaneously doing:
>
> creat("/bar/baz", 0600);
>
> ...and we get back ESTALE from the server on the create because the
> "old" /bar got replaced after the lookup of it. Then it seems like
> returning -ENOENT would not be correct since there was never a time
> where /bar didn't exist...

It may not be "correct" according to some standard. But it's what Linux
does since day one on *all* filesystems. And probably other OS's that
have remotely scalable lookup routines.

Thanks,
Miklos
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/