Hi Joern, (Dunno who to CC, really, so lets see if I can trick Andrew or Hugh into looking at the issue.) On Fri, Nov 20, 2009 at 9:38 PM, Joern Engel <joern@xxxxxxxxx> wrote: > +static void logfs_lock_write_page(struct page *page) > +{ > + int loop = 0; > + > + while (unlikely(!trylock_page(page))) { > + if (loop++ > 0x1000) { > + /* Has been observed once so far... */ > + printk(KERN_ERR "stack at %p\n", &loop); > + BUG(); > + } > + if (PagePreLocked(page)) { > + /* Holder of page lock is waiting for us, it > + * is safe to use this page. */ > + break; > + } > + /* Some other process has this page locked and has > + * nothing to do with us. Wait for it to finish. > + */ > + schedule(); > + } > + BUG_ON(!PageLocked(page)); > +} What's the purpose of PagePreLocked()? The above function looks pretty fragile for a filesystem to me. Pekka -- 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