diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ext4/ialloc.c | 7 | ||||
-rw-r--r-- | fs/ext4/inode.c | 9 | ||||
-rw-r--r-- | fs/proc/inode.c | 4 | ||||
-rw-r--r-- | fs/proc/page.c | 2 |
4 files changed, 19 insertions, 3 deletions
diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c index 4fb86a0061d0..f18a919be70b 100644 --- a/fs/ext4/ialloc.c +++ b/fs/ext4/ialloc.c | |||
@@ -715,6 +715,13 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode) | |||
715 | 715 | ||
716 | if (sbi->s_log_groups_per_flex) { | 716 | if (sbi->s_log_groups_per_flex) { |
717 | ret2 = find_group_flex(sb, dir, &group); | 717 | ret2 = find_group_flex(sb, dir, &group); |
718 | if (ret2 == -1) { | ||
719 | ret2 = find_group_other(sb, dir, &group); | ||
720 | if (ret2 == 0 && printk_ratelimit()) | ||
721 | printk(KERN_NOTICE "ext4: find_group_flex " | ||
722 | "failed, fallback succeeded dir %lu\n", | ||
723 | dir->i_ino); | ||
724 | } | ||
718 | goto got_group; | 725 | goto got_group; |
719 | } | 726 | } |
720 | 727 | ||
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index cbd2ca99d113..51cdd13e1c31 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c | |||
@@ -1368,6 +1368,10 @@ retry: | |||
1368 | goto out; | 1368 | goto out; |
1369 | } | 1369 | } |
1370 | 1370 | ||
1371 | /* We cannot recurse into the filesystem as the transaction is already | ||
1372 | * started */ | ||
1373 | flags |= AOP_FLAG_NOFS; | ||
1374 | |||
1371 | page = grab_cache_page_write_begin(mapping, index, flags); | 1375 | page = grab_cache_page_write_begin(mapping, index, flags); |
1372 | if (!page) { | 1376 | if (!page) { |
1373 | ext4_journal_stop(handle); | 1377 | ext4_journal_stop(handle); |
@@ -1377,7 +1381,7 @@ retry: | |||
1377 | *pagep = page; | 1381 | *pagep = page; |
1378 | 1382 | ||
1379 | ret = block_write_begin(file, mapping, pos, len, flags, pagep, fsdata, | 1383 | ret = block_write_begin(file, mapping, pos, len, flags, pagep, fsdata, |
1380 | ext4_get_block); | 1384 | ext4_get_block); |
1381 | 1385 | ||
1382 | if (!ret && ext4_should_journal_data(inode)) { | 1386 | if (!ret && ext4_should_journal_data(inode)) { |
1383 | ret = walk_page_buffers(handle, page_buffers(page), | 1387 | ret = walk_page_buffers(handle, page_buffers(page), |
@@ -2667,6 +2671,9 @@ retry: | |||
2667 | ret = PTR_ERR(handle); | 2671 | ret = PTR_ERR(handle); |
2668 | goto out; | 2672 | goto out; |
2669 | } | 2673 | } |
2674 | /* We cannot recurse into the filesystem as the transaction is already | ||
2675 | * started */ | ||
2676 | flags |= AOP_FLAG_NOFS; | ||
2670 | 2677 | ||
2671 | page = grab_cache_page_write_begin(mapping, index, flags); | 2678 | page = grab_cache_page_write_begin(mapping, index, flags); |
2672 | if (!page) { | 2679 | if (!page) { |
diff --git a/fs/proc/inode.c b/fs/proc/inode.c index 3e76bb9b3ad6..d8bb5c671f42 100644 --- a/fs/proc/inode.c +++ b/fs/proc/inode.c | |||
@@ -485,8 +485,10 @@ struct inode *proc_get_inode(struct super_block *sb, unsigned int ino, | |||
485 | } | 485 | } |
486 | } | 486 | } |
487 | unlock_new_inode(inode); | 487 | unlock_new_inode(inode); |
488 | } else | 488 | } else { |
489 | module_put(de->owner); | 489 | module_put(de->owner); |
490 | de_put(de); | ||
491 | } | ||
490 | return inode; | 492 | return inode; |
491 | 493 | ||
492 | out_ino: | 494 | out_ino: |
diff --git a/fs/proc/page.c b/fs/proc/page.c index 767d95a6d1b1..2d1345112a42 100644 --- a/fs/proc/page.c +++ b/fs/proc/page.c | |||
@@ -107,7 +107,7 @@ static ssize_t kpageflags_read(struct file *file, char __user *buf, | |||
107 | else | 107 | else |
108 | kflags = ppage->flags; | 108 | kflags = ppage->flags; |
109 | 109 | ||
110 | uflags = kpf_copy_bit(KPF_LOCKED, PG_locked, kflags) | | 110 | uflags = kpf_copy_bit(kflags, KPF_LOCKED, PG_locked) | |
111 | kpf_copy_bit(kflags, KPF_ERROR, PG_error) | | 111 | kpf_copy_bit(kflags, KPF_ERROR, PG_error) | |
112 | kpf_copy_bit(kflags, KPF_REFERENCED, PG_referenced) | | 112 | kpf_copy_bit(kflags, KPF_REFERENCED, PG_referenced) | |
113 | kpf_copy_bit(kflags, KPF_UPTODATE, PG_uptodate) | | 113 | kpf_copy_bit(kflags, KPF_UPTODATE, PG_uptodate) | |