Messages in this thread | | | Date | Fri, 19 May 2006 11:46:09 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH 1/6] nfs: "open code" the NFS direct write rescheduler |
| |
Chuck Lever <cel@citi.umich.edu> wrote: > > Andrew Morton wrote: > > Chuck Lever <cel@netapp.com> wrote: > >> + * Prevent I/O completion while we're still rescheduling > >> + */ > >> + dreq->outstanding++; > >> + > > > > No locking. > > > >> dreq->count = 0; > >> + list_for_each(pos, &dreq->rewrite_list) { > >> + struct nfs_write_data *data = > >> + list_entry(dreq->rewrite_list.next, struct nfs_write_data, pages); > >> + > >> + spin_lock(&dreq->lock); > >> + dreq->outstanding++; > >> + spin_unlock(&dreq->lock); > > > > Locking. > > > > Deliberate? > > Yes. At the top of the loop, there is no outstanding I/O, so no locking > is needed while updating "outstanding." Inside the loop, we've > dispatched some I/O against "dreq" so locking is needed to ensure > outstanding is updated properly. >
OK. Well if I asked, then others will wonder about it. A comment would cure that problem ;) - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |