2014-10-14 17:46:23

by Fabian Frédérick

[permalink] [raw]
Subject: [RFC 1/1 linux-next] btrfs: don't opencode zero_user_segment

use function defined in include/linux/highmem.h
Note that this reverts 2 last function call order

Signed-off-by: Fabian Frederick <[email protected]>
---
fs/btrfs/scrub.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c
index efa0831..fa063cd 100644
--- a/fs/btrfs/scrub.c
+++ b/fs/btrfs/scrub.c
@@ -1503,13 +1503,9 @@ static int scrub_write_page_to_dev_replace(struct scrub_block *sblock,
struct scrub_page *spage = sblock->pagev[page_num];

BUG_ON(spage->page == NULL);
- if (spage->io_error) {
- void *mapped_buffer = kmap_atomic(spage->page);
+ if (spage->io_error)
+ zero_user_segment(spage->page, 0, PAGE_CACHE_SIZE);

- memset(mapped_buffer, 0, PAGE_CACHE_SIZE);
- flush_dcache_page(spage->page);
- kunmap_atomic(mapped_buffer);
- }
return scrub_add_page_to_wr_bio(sblock->sctx, spage);
}

--
1.9.3


2014-10-14 19:15:50

by Zach Brown

[permalink] [raw]
Subject: Re: [RFC 1/1 linux-next] btrfs: don't opencode zero_user_segment

On Tue, Oct 14, 2014 at 07:46:14PM +0200, Fabian Frederick wrote:
> use function defined in include/linux/highmem.h
> Note that this reverts 2 last function call order

And adds a BUG_ON(PAGE_CACHE_SIZE > PAGE_SIZE). We can take bets on
whether that will ever trigger.

- z

2014-10-14 20:18:13

by Fabian Frédérick

[permalink] [raw]
Subject: Re: [RFC 1/1 linux-next] btrfs: don't opencode zero_user_segment



> On 14 October 2014 at 21:15 Zach Brown <[email protected]> wrote:
>
>
> On Tue, Oct 14, 2014 at 07:46:14PM +0200, Fabian Frederick wrote:
> > use function defined in include/linux/highmem.h
> > Note that this reverts 2 last function call order
>
> And adds a BUG_ON(PAGE_CACHE_SIZE > PAGE_SIZE).  We can take bets on
> whether that will ever trigger.

There are 36 zero_user_segment with PAGE_CACHE_SIZE callsites.
Maybe we could add some specific function to avoid BUG_ON tests ?

Fabian
>
> - z

2014-10-15 17:08:35

by Zach Brown

[permalink] [raw]
Subject: Re: [RFC 1/1 linux-next] btrfs: don't opencode zero_user_segment

On Tue, Oct 14, 2014 at 10:18:09PM +0200, Fabian Frederick wrote:
>
>
> > On 14 October 2014 at 21:15 Zach Brown <[email protected]> wrote:
> >
> >
> > On Tue, Oct 14, 2014 at 07:46:14PM +0200, Fabian Frederick wrote:
> > > use function defined in include/linux/highmem.h
> > > Note that this reverts 2 last function call order
> >
> > And adds a BUG_ON(PAGE_CACHE_SIZE > PAGE_SIZE).? We can take bets on
> > whether that will ever trigger.
>
> There are 36 zero_user_segment with PAGE_CACHE_SIZE callsites.
> Maybe we could add some specific function to avoid BUG_ON tests ?

Nah, I wouldn't bother.

A lot of us have long rolled our eyes at the distinction between
PAGE_SIZE and PAGE_CACHE_SIZE given how much will break if they're ever
actually different. That's what I was referencing there :).

- z