diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-24 11:22:34 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-24 11:22:34 -0400 |
commit | fdc0ad80a4f27efcb457b49f5dd8455a3d623559 (patch) | |
tree | 189cde09de3a52aece0493385921b4dd7e096ed2 /fs | |
parent | dc87c55120b0a5b0c4d731183f8bb348981aba65 (diff) | |
parent | 6ed09c34b7984a978a73a855f4c2e6662acc8bdb (diff) |
Merge branch 'for-linus' of git://git.infradead.org/ubi-2.6
* 'for-linus' of git://git.infradead.org/ubi-2.6:
UBIFS: fix assertion warning and refine comments
UBIFS: kill CONFIG_UBIFS_FS_DEBUG_CHKS
UBIFS: use GFP_NOFS properly
UBI: use GFP_NOFS properly
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ubifs/Kconfig | 9 | ||||
-rw-r--r-- | fs/ubifs/debug.c | 2 | ||||
-rw-r--r-- | fs/ubifs/file.c | 11 | ||||
-rw-r--r-- | fs/ubifs/lprops.c | 2 | ||||
-rw-r--r-- | fs/ubifs/lpt_commit.c | 4 | ||||
-rw-r--r-- | fs/ubifs/orphan.c | 2 |
6 files changed, 12 insertions, 18 deletions
diff --git a/fs/ubifs/Kconfig b/fs/ubifs/Kconfig index 1d1859dc3de5..d7440904be17 100644 --- a/fs/ubifs/Kconfig +++ b/fs/ubifs/Kconfig | |||
@@ -58,12 +58,3 @@ config UBIFS_FS_DEBUG | |||
58 | down UBIFS. You can then further enable / disable individual debugging | 58 | down UBIFS. You can then further enable / disable individual debugging |
59 | features using UBIFS module parameters and the corresponding sysfs | 59 | features using UBIFS module parameters and the corresponding sysfs |
60 | interfaces. | 60 | interfaces. |
61 | |||
62 | config UBIFS_FS_DEBUG_CHKS | ||
63 | bool "Enable extra checks" | ||
64 | depends on UBIFS_FS_DEBUG | ||
65 | help | ||
66 | If extra checks are enabled UBIFS will check the consistency of its | ||
67 | internal data structures during operation. However, UBIFS performance | ||
68 | is dramatically slower when this option is selected especially if the | ||
69 | file system is large. | ||
diff --git a/fs/ubifs/debug.c b/fs/ubifs/debug.c index 01c2b028e525..f25a7339f800 100644 --- a/fs/ubifs/debug.c +++ b/fs/ubifs/debug.c | |||
@@ -818,7 +818,7 @@ void dbg_dump_leb(const struct ubifs_info *c, int lnum) | |||
818 | printk(KERN_DEBUG "(pid %d) start dumping LEB %d\n", | 818 | printk(KERN_DEBUG "(pid %d) start dumping LEB %d\n", |
819 | current->pid, lnum); | 819 | current->pid, lnum); |
820 | 820 | ||
821 | buf = __vmalloc(c->leb_size, GFP_KERNEL | GFP_NOFS, PAGE_KERNEL); | 821 | buf = __vmalloc(c->leb_size, GFP_NOFS, PAGE_KERNEL); |
822 | if (!buf) { | 822 | if (!buf) { |
823 | ubifs_err("cannot allocate memory for dumping LEB %d", lnum); | 823 | ubifs_err("cannot allocate memory for dumping LEB %d", lnum); |
824 | return; | 824 | return; |
diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c index d77db7e36484..28be1e6a65e8 100644 --- a/fs/ubifs/file.c +++ b/fs/ubifs/file.c | |||
@@ -448,10 +448,12 @@ static int ubifs_write_begin(struct file *file, struct address_space *mapping, | |||
448 | if (!(pos & ~PAGE_CACHE_MASK) && len == PAGE_CACHE_SIZE) { | 448 | if (!(pos & ~PAGE_CACHE_MASK) && len == PAGE_CACHE_SIZE) { |
449 | /* | 449 | /* |
450 | * We change whole page so no need to load it. But we | 450 | * We change whole page so no need to load it. But we |
451 | * have to set the @PG_checked flag to make the further | 451 | * do not know whether this page exists on the media or |
452 | * code know that the page is new. This might be not | 452 | * not, so we assume the latter because it requires |
453 | * true, but it is better to budget more than to read | 453 | * larger budget. The assumption is that it is better |
454 | * the page from the media. | 454 | * to budget a bit more than to read the page from the |
455 | * media. Thus, we are setting the @PG_checked flag | ||
456 | * here. | ||
455 | */ | 457 | */ |
456 | SetPageChecked(page); | 458 | SetPageChecked(page); |
457 | skipped_read = 1; | 459 | skipped_read = 1; |
@@ -559,6 +561,7 @@ static int ubifs_write_end(struct file *file, struct address_space *mapping, | |||
559 | dbg_gen("copied %d instead of %d, read page and repeat", | 561 | dbg_gen("copied %d instead of %d, read page and repeat", |
560 | copied, len); | 562 | copied, len); |
561 | cancel_budget(c, page, ui, appending); | 563 | cancel_budget(c, page, ui, appending); |
564 | ClearPageChecked(page); | ||
562 | 565 | ||
563 | /* | 566 | /* |
564 | * Return 0 to force VFS to repeat the whole operation, or the | 567 | * Return 0 to force VFS to repeat the whole operation, or the |
diff --git a/fs/ubifs/lprops.c b/fs/ubifs/lprops.c index c7b25e2f7764..0ee0847f2421 100644 --- a/fs/ubifs/lprops.c +++ b/fs/ubifs/lprops.c | |||
@@ -1094,7 +1094,7 @@ static int scan_check_cb(struct ubifs_info *c, | |||
1094 | } | 1094 | } |
1095 | } | 1095 | } |
1096 | 1096 | ||
1097 | buf = __vmalloc(c->leb_size, GFP_KERNEL | GFP_NOFS, PAGE_KERNEL); | 1097 | buf = __vmalloc(c->leb_size, GFP_NOFS, PAGE_KERNEL); |
1098 | if (!buf) { | 1098 | if (!buf) { |
1099 | ubifs_err("cannot allocate memory to scan LEB %d", lnum); | 1099 | ubifs_err("cannot allocate memory to scan LEB %d", lnum); |
1100 | goto out; | 1100 | goto out; |
diff --git a/fs/ubifs/lpt_commit.c b/fs/ubifs/lpt_commit.c index 0a3c2c3f5c4a..0c9c69bd983a 100644 --- a/fs/ubifs/lpt_commit.c +++ b/fs/ubifs/lpt_commit.c | |||
@@ -1633,7 +1633,7 @@ static int dbg_check_ltab_lnum(struct ubifs_info *c, int lnum) | |||
1633 | if (!(ubifs_chk_flags & UBIFS_CHK_LPROPS)) | 1633 | if (!(ubifs_chk_flags & UBIFS_CHK_LPROPS)) |
1634 | return 0; | 1634 | return 0; |
1635 | 1635 | ||
1636 | buf = p = __vmalloc(c->leb_size, GFP_KERNEL | GFP_NOFS, PAGE_KERNEL); | 1636 | buf = p = __vmalloc(c->leb_size, GFP_NOFS, PAGE_KERNEL); |
1637 | if (!buf) { | 1637 | if (!buf) { |
1638 | ubifs_err("cannot allocate memory for ltab checking"); | 1638 | ubifs_err("cannot allocate memory for ltab checking"); |
1639 | return 0; | 1639 | return 0; |
@@ -1885,7 +1885,7 @@ static void dump_lpt_leb(const struct ubifs_info *c, int lnum) | |||
1885 | 1885 | ||
1886 | printk(KERN_DEBUG "(pid %d) start dumping LEB %d\n", | 1886 | printk(KERN_DEBUG "(pid %d) start dumping LEB %d\n", |
1887 | current->pid, lnum); | 1887 | current->pid, lnum); |
1888 | buf = p = __vmalloc(c->leb_size, GFP_KERNEL | GFP_NOFS, PAGE_KERNEL); | 1888 | buf = p = __vmalloc(c->leb_size, GFP_NOFS, PAGE_KERNEL); |
1889 | if (!buf) { | 1889 | if (!buf) { |
1890 | ubifs_err("cannot allocate memory to dump LPT"); | 1890 | ubifs_err("cannot allocate memory to dump LPT"); |
1891 | return; | 1891 | return; |
diff --git a/fs/ubifs/orphan.c b/fs/ubifs/orphan.c index 2cdbd31641d7..09df318e368f 100644 --- a/fs/ubifs/orphan.c +++ b/fs/ubifs/orphan.c | |||
@@ -898,7 +898,7 @@ static int dbg_scan_orphans(struct ubifs_info *c, struct check_info *ci) | |||
898 | if (c->no_orphs) | 898 | if (c->no_orphs) |
899 | return 0; | 899 | return 0; |
900 | 900 | ||
901 | buf = __vmalloc(c->leb_size, GFP_KERNEL | GFP_NOFS, PAGE_KERNEL); | 901 | buf = __vmalloc(c->leb_size, GFP_NOFS, PAGE_KERNEL); |
902 | if (!buf) { | 902 | if (!buf) { |
903 | ubifs_err("cannot allocate memory to check orphans"); | 903 | ubifs_err("cannot allocate memory to check orphans"); |
904 | return 0; | 904 | return 0; |