lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 19 Jun 2007 09:23:49 -0700
From:	Mingming Cao <cmm@...ibm.com>
To:	Alex Tomas <alex@...sterfs.com>
Cc:	Dmitriy Monakhov <dmonakhov@...ru>, linux-ext4@...r.kernel.org
Subject: Re: delayed allocatiou result in Oops

On Tue, 2007-06-19 at 11:11 +0400, Alex Tomas wrote:
> Mingming Cao wrote:
> >>From the comments it says the page->private is set to 1 to letting
> > commit_write know that it needs block reservation, but I don't see the
> > page->private value being checked in ext4_wb_commit_write(). Instead,
> > the PageMappedToDisk(page) flag is being checked.
> > 
> > Alex, can you clarify the use of page->private and PagePrivate flag
> > here? Do we still need the page->private for delayed allocation, with
> > PageBooked flag and PageMappedToDisk page flag?
> 
> sorry for confusion, we need PagePrivate so that truncate calls our
> ->invalidatepage(). in turn this call is needed to drop unused reservation.


One more question, do we still need page->private? I don't see page-
>private value being checked anywhere.  I see you cleared
PageMappedToDisk page flag at prepare_write, and checked
PageMappedToDisk in commit_write()...

Hmm, PageMappedToDisk is probably not sufficient enough for pagesize!
=blocksize. Is that the reason we need page->private to pass the
request?


> block_read_full_page() must not happen to pages being delayed allocated
> in the first place - it's uptodate by definition. I think the problem
> began when ext4_wb_commit_write() exited due to -ENOSPC but left not
> uptodate *and* with PG_private. then subsequent access to page turned to
> block_read_full_page() which relies on PG_private and meaningful private
> field. Dmitry, could you repeat the test with SetPagePrivate(page) moved
> to after that if() with ext4_wb_reserve_space_page(), please?
> 
> 
> as i'm here ... status update: I've been reworking delayed allocation
> patches to support blocksize < PAGE_CACHE_SIZE (and address akpm's request
> for more generic implementation). the patch isn't ready for review, but
> hopefully will be in few days.
> 

That's good to know, thanks for the update. So probably above error case
handling will be addressed in the new version? 

BTW, can you point me your latest and greatest mballoc patch? I am
trying to forward port and merge that patch to ext4 patch queue....


Thanks,


Mingming
> 
> thanks, Alex
> 
> 

-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists