Boaz Harrosh wrote: > (...) > +struct page_collect { > + struct exofs_sb_info *sbi; > + struct request_queue *req_q; > + struct inode *inode; > + unsigned expected_pages; > + > + struct bio *bio; > + unsigned nr_pages; > + unsigned long length; > + long pg_first; > +}; > (...) > +int pcol_try_alloc(struct page_collect *pcol) > +{ > + int pages = min_t(unsigned, pcol->expected_pages, BIO_MAX_PAGES); > + > + for (; pages; pages >>= 1) { > + pcol->bio = bio_alloc(GFP_KERNEL, pages); > + if (likely(pcol->bio)) > + return 0; > + } > + > + EXOFS_ERR("Failed to kcalloc expected_pages=%d\n", %u > + pcol->expected_pages); > + return -ENOMEM; > +} > + > (...) > +static int __readpages_done(struct osd_request *or, struct page_collect *pcol, > + bool do_unlock) > +{ > + struct bio_vec *bvec; > + int i; > + u64 resid; > + u64 good_bytes; > + u64 length = 0; > + int ret = exofs_check_ok_resid(or, &resid, NULL); > + > + osd_end_request(or); > + > + if (!ret) > + good_bytes = pcol->length; > + else if (ret && !resid) > + good_bytes = 0; > + else > + good_bytes = pcol->length - resid; Second ret check is not needed. > (...) > + > +int read_exec(struct page_collect *pcol, bool is_sync) read_exec is too generic name for globally visible symbol > +{ > (...) > +static void writepages_done(struct osd_request *or, void *p) > +{ > + struct page_collect *pcol = p; > + struct bio_vec *bvec; > + int i; > + u64 resid; > + u64 good_bytes; > + u64 length = 0; > + > + int ret = exofs_check_ok_resid(or, NULL, &resid); > + > + osd_end_request(or); > + atomic_dec(&pcol->sbi->s_curr_pending); > + > + if (likely(!ret)) > + good_bytes = pcol->length; > + else if (ret && !resid) > + good_bytes = 0; > + else > + good_bytes = pcol->length - resid; Ret check again. > (...) > + > +int write_exec(struct page_collect *pcol) Too generic name. > (...) -- 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