[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190830162812.GA10694@infradead.org>
Date: Fri, 30 Aug 2019 09:28:12 -0700
From: Christoph Hellwig <hch@...radead.org>
To: Gao Xiang <gaoxiang25@...wei.com>
Cc: Chao Yu <yuchao0@...wei.com>,
Dan Carpenter <dan.carpenter@...cle.com>,
Christoph Hellwig <hch@...radead.org>,
Joe Perches <joe@...ches.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
devel@...verdev.osuosl.org, LKML <linux-kernel@...r.kernel.org>,
linux-erofs@...ts.ozlabs.org, Chao Yu <chao@...nel.org>,
Miao Xie <miaoxie@...wei.com>, weidu.du@...wei.com,
Fang Wei <fangwei1@...wei.com>
Subject: Re: [PATCH v3 7/7] erofs: redundant assignment in
__erofs_get_meta_page()
> - err = bio_add_page(bio, page, PAGE_SIZE, 0);
> - if (err != PAGE_SIZE) {
> + if (bio_add_page(bio, page, PAGE_SIZE, 0) != PAGE_SIZE) {
> err = -EFAULT;
> goto err_out;
> }
This patch looks like an improvement. But looking at that whole
area just makes me cringe.
Why is there __erofs_get_meta_page with the two weird booleans instead
of a single erofs_get_meta_page that gets and gfp_t for additional
flags and an unsigned int for additional bio op flags.
Why do need ioprio support to start with? Seeing that in a new
fs look kinda odd. Do you have benchmarks that show the difference?
That function then calls erofs_grab_bio, which tries to handle a
bio_alloc failure, except that the function will not actually fail
due the mempool backing it. It also seems like and awfully
huge function to inline.
Why is there __submit_bio which really just obsfucates what is
going on? Also why is __submit_bio using bio_set_op_attrs instead
of opencode it as the comment right next to it asks you to?
Also I really don't understand why you can't just use read_cache_page
or even read_cache_page_gfp instead of __erofs_get_meta_page.
That function is a whole lot of duplication of functionality shared
by a lot of other file systems.
Powered by blists - more mailing lists