When a filehandle is cleared with fh_put(), wipe out all traces by clearing ->fh_pre_saved and ->fh_post_saved. This prevents fill_post_wcc() from complaining if the filehandle is later reused. (This could happen to CURRENT_FH if, for example, LOOKUP LOOKUP occurs in a COMPOUND.) --- old/fs/nfsd/nfsfh.c Sun Aug 11 22:54:17 2002 +++ new/fs/nfsd/nfsfh.c Sun Aug 11 22:55:44 2002 @@ -438,6 +438,10 @@ fh_put(struct svc_fh *fhp) fh_unlock(fhp); fhp->fh_dentry = NULL; dput(dentry); +#ifdef CONFIG_NFSD_V3 + fhp->fh_pre_saved = 0; + fhp->fh_post_saved = 0; +#endif nfsd_nr_put++; } return;