On Mon, Mar 29, 2010 at 07:36:45PM +0100, Daniel J Blueman wrote:
Joy... ERR_PTR(-EPERM) in nd.intent.file, and whoever had called
lookup_instantiate_filp() hadn't bothered to check the return value.
OK, I think I see what's going on. Replace
lookup_instantiate_filp(nd, (struct dentry *)state, NULL);
return 1;
with
lookup_instantiate_filp(nd, (struct dentry *)state, NULL);
return state;
in fs/nfs/nfs4proc.c:nfs4_open_revalidate() and see if everything works
properly (or just lose the lookup_instantiate_filp() in there and simply
return state).
--