On Tue, Oct 12, 2010 at 7:09 AM, P.B.Shelley <shelleypt@xxxxxxxxx> wrote: > Hi, all > > While reading Linux pnfs code, I have a question in layoutreturn code path. > > nfs4_layoutreturn_release() only invalidate layout stateid when > res.lrs_present is FALSE. If it is TRUE, client is supposed to set it > to res.stateid, is it? But I do not see somewhere the layout stateid > is updated. Am I missing something? > No, you are not missing anything. that is a bug. Fred > 5683 static void nfs4_layoutreturn_release(void *calldata) > 5684 { > 5685 struct nfs4_layoutreturn *lrp = calldata; > 5686 struct pnfs_layout_hdr *lo = NFS_I(lrp->args.inode)->layout; > 5687 > 5688 dprintk("--> %s return_type %d lo %p\n", __func__, > 5689 lrp->args.return_type, lo); > 5690 > 5691 if (lrp->args.return_type == RETURN_FILE) { > 5692 if (!lrp->res.lrs_present) > 5693 pnfs_invalidate_layout_stateid(lo); > 5694 pnfs_layoutreturn_release(lo, &lrp->args.range); > 5695 } > 5696 kfree(calldata); > 5697 dprintk("<-- %s\n", __func__); > 5698 } > > -- > Thanks, > Shelley > -- > 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 > -- 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