Messages in this thread | | | Date | Sat, 13 Jun 2009 22:52:40 -0300 | From | Alberto Bertogli <> | Subject | Re: NILFS2 get stuck after bio_alloc() fail |
| |
On Sat, Jun 13, 2009 at 10:32:11PM -0300, Leandro Lucarella wrote: > Hi! > > While testing nilfs2 (using 2.6.30) doing some "cp"s and "rm"s, I noticed > sometimes they got stucked in D state, and the kernel had said the > following message: > > NILFS: IO error writing segment > > A friend gave me a hand and after adding some printk()s we found out that > the problem seems to occur when bio_alloc()s inside nilfs_alloc_seg_bio() > fail, making it return NULL; but we don't know how that causes the > processes to get stucked.
By the way, those bio_alloc()s are using GFP_NOWAIT but it looks like they could use at least GFP_NOIO or GFP_NOFS, since the caller can (and sometimes do) sleep. The only caller is nilfs_submit_bh(), which calls nilfs_submit_seg_bio() which can sleep calling wait_for_completion(). Is there something I'm missing?
Thanks a lot, Alberto
| |