diff options
author | Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> | 2009-04-06 22:01:55 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-07 11:31:19 -0400 |
commit | 1f5abe7e7dbcd83e73212c6cb135a6106cea6a0b (patch) | |
tree | f80e97297d5badebd31bbb17003d76a4ea30453a /fs/nilfs2/page.c | |
parent | 2c2e52fc4fca251e68f90821c9ff5cb18be4df58 (diff) |
nilfs2: replace BUG_ON and BUG calls triggerable from ioctl
Pekka Enberg advised me:
> It would be nice if BUG(), BUG_ON(), and panic() calls would be
> converted to proper error handling using WARN_ON() calls. The BUG()
> call in nilfs_cpfile_delete_checkpoints(), for example, looks to be
> triggerable from user-space via the ioctl() system call.
This will follow the comment and keep them to a minimum.
Acked-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/nilfs2/page.c')
-rw-r--r-- | fs/nilfs2/page.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/fs/nilfs2/page.c b/fs/nilfs2/page.c index 7b18be8cd47a..1bfbba9c0e9a 100644 --- a/fs/nilfs2/page.c +++ b/fs/nilfs2/page.c | |||
@@ -417,7 +417,7 @@ repeat: | |||
417 | dpage = find_lock_page(dmap, offset); | 417 | dpage = find_lock_page(dmap, offset); |
418 | if (dpage) { | 418 | if (dpage) { |
419 | /* override existing page on the destination cache */ | 419 | /* override existing page on the destination cache */ |
420 | BUG_ON(PageDirty(dpage)); | 420 | WARN_ON(PageDirty(dpage)); |
421 | nilfs_copy_page(dpage, page, 0); | 421 | nilfs_copy_page(dpage, page, 0); |
422 | unlock_page(dpage); | 422 | unlock_page(dpage); |
423 | page_cache_release(dpage); | 423 | page_cache_release(dpage); |
@@ -427,17 +427,15 @@ repeat: | |||
427 | /* move the page to the destination cache */ | 427 | /* move the page to the destination cache */ |
428 | spin_lock_irq(&smap->tree_lock); | 428 | spin_lock_irq(&smap->tree_lock); |
429 | page2 = radix_tree_delete(&smap->page_tree, offset); | 429 | page2 = radix_tree_delete(&smap->page_tree, offset); |
430 | if (unlikely(page2 != page)) | 430 | WARN_ON(page2 != page); |
431 | NILFS_PAGE_BUG(page, "page removal failed " | 431 | |
432 | "(offset=%lu, page2=%p)", | ||
433 | offset, page2); | ||
434 | smap->nrpages--; | 432 | smap->nrpages--; |
435 | spin_unlock_irq(&smap->tree_lock); | 433 | spin_unlock_irq(&smap->tree_lock); |
436 | 434 | ||
437 | spin_lock_irq(&dmap->tree_lock); | 435 | spin_lock_irq(&dmap->tree_lock); |
438 | err = radix_tree_insert(&dmap->page_tree, offset, page); | 436 | err = radix_tree_insert(&dmap->page_tree, offset, page); |
439 | if (unlikely(err < 0)) { | 437 | if (unlikely(err < 0)) { |
440 | BUG_ON(err == -EEXIST); | 438 | WARN_ON(err == -EEXIST); |
441 | page->mapping = NULL; | 439 | page->mapping = NULL; |
442 | page_cache_release(page); /* for cache */ | 440 | page_cache_release(page); /* for cache */ |
443 | } else { | 441 | } else { |