Hello, Phillip. one remark below:
> > +static int squashfs_read_cache(struct page *target_page, u64 block, int bsize, > + int pages, struct page **page) > +{ > + struct inode *i = target_page->mapping->host; > + struct squashfs_cache_entry *buffer = squashfs_get_datablock(i- >i_sb, > + block, bsize); > + int bytes = buffer->length, res = buffer->error, n, offset = 0; > + void *pageaddr; > + > + if (res) { > + ERROR("Unable to read page, block %llx, size %x\n", block, > + bsize); > + goto out; have you forgotten to unlock the pages on error path? in case of error squashfs_readpage will unlock only target page. > + } > + > + for (n = 0; n < pages && bytes > 0; n++, > + bytes -= PAGE_CACHE_SIZE, offset += PAGE_CACHE_SIZE) { > + int avail = min_t(int, bytes, PAGE_CACHE_SIZE); -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/