One more vague question I had while skimming the previous version-- On Tue, May 29, 2007 at 03:54:27PM +0100, David Howells wrote: > +static void afs_grant_locks(struct afs_vnode *vnode, struct file_lock *fl) > +{ > + struct file_lock *p, *_p; > + > + list_move_tail(&fl->fl_u.afs.link, &vnode->granted_locks); > + if (fl->fl_type == F_RDLCK) { > + list_for_each_entry_safe(p, _p, &vnode->pending_locks, > + fl_u.afs.link) { > + if (p->fl_type == F_RDLCK) { > + p->fl_u.afs.state = AFS_LOCK_GRANTED; > + list_move_tail(&p->fl_u.afs.link, > + &vnode->granted_locks); > + wake_up(&p->fl_wait); > + } > + } > + } > +} --without having tried to understand how they're actually used, these data structures (like the pending_locks and granted_locks lists) seem to duplicate stuff that's already kept in fs/locks.c. Is there a reason they're required? --b. - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html