--- zzzz-none-000/linux-2.6.19.2/fs/gfs2/ops_address.c 2007-01-10 19:10:37.000000000 +0000 +++ davinci-8020-5504/linux-2.6.19.2/fs/gfs2/ops_address.c 2007-01-11 07:38:19.000000000 +0000 @@ -337,6 +337,13 @@ out_noerror: ret = 0; out_unlock: + /* unlock all pages, we can't do any I/O right now */ + for (page_idx = 0; page_idx < nr_pages; page_idx++) { + struct page *page = list_entry(pages->prev, struct page, lru); + list_del(&page->lru); + unlock_page(page); + page_cache_release(page); + } if (do_unlock) gfs2_holder_uninit(&gh); goto out;