diff options
Diffstat (limited to 'fs/nilfs2')
-rw-r--r-- | fs/nilfs2/alloc.c | 3 | ||||
-rw-r--r-- | fs/nilfs2/btnode.c | 1 | ||||
-rw-r--r-- | fs/nilfs2/btree.c | 2 | ||||
-rw-r--r-- | fs/nilfs2/gcinode.c | 1 | ||||
-rw-r--r-- | fs/nilfs2/inode.c | 1 | ||||
-rw-r--r-- | fs/nilfs2/ioctl.c | 3 | ||||
-rw-r--r-- | fs/nilfs2/mdt.c | 1 | ||||
-rw-r--r-- | fs/nilfs2/page.c | 1 | ||||
-rw-r--r-- | fs/nilfs2/recovery.c | 1 | ||||
-rw-r--r-- | fs/nilfs2/segbuf.c | 9 | ||||
-rw-r--r-- | fs/nilfs2/segment.c | 16 | ||||
-rw-r--r-- | fs/nilfs2/the_nilfs.h | 1 |
12 files changed, 25 insertions, 15 deletions
diff --git a/fs/nilfs2/alloc.c b/fs/nilfs2/alloc.c index 3f959f1879d8..7cfb87e692da 100644 --- a/fs/nilfs2/alloc.c +++ b/fs/nilfs2/alloc.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <linux/buffer_head.h> | 26 | #include <linux/buffer_head.h> |
27 | #include <linux/fs.h> | 27 | #include <linux/fs.h> |
28 | #include <linux/bitops.h> | 28 | #include <linux/bitops.h> |
29 | #include <linux/slab.h> | ||
29 | #include "mdt.h" | 30 | #include "mdt.h" |
30 | #include "alloc.h" | 31 | #include "alloc.h" |
31 | 32 | ||
@@ -425,7 +426,7 @@ void nilfs_palloc_abort_alloc_entry(struct inode *inode, | |||
425 | bitmap = bitmap_kaddr + bh_offset(req->pr_bitmap_bh); | 426 | bitmap = bitmap_kaddr + bh_offset(req->pr_bitmap_bh); |
426 | if (!nilfs_clear_bit_atomic(nilfs_mdt_bgl_lock(inode, group), | 427 | if (!nilfs_clear_bit_atomic(nilfs_mdt_bgl_lock(inode, group), |
427 | group_offset, bitmap)) | 428 | group_offset, bitmap)) |
428 | printk(KERN_WARNING "%s: entry numer %llu already freed\n", | 429 | printk(KERN_WARNING "%s: entry number %llu already freed\n", |
429 | __func__, (unsigned long long)req->pr_entry_nr); | 430 | __func__, (unsigned long long)req->pr_entry_nr); |
430 | 431 | ||
431 | nilfs_palloc_group_desc_add_entries(inode, group, desc, 1); | 432 | nilfs_palloc_group_desc_add_entries(inode, group, desc, 1); |
diff --git a/fs/nilfs2/btnode.c b/fs/nilfs2/btnode.c index 471e269536ae..447ce47a3306 100644 --- a/fs/nilfs2/btnode.c +++ b/fs/nilfs2/btnode.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include <linux/buffer_head.h> | 27 | #include <linux/buffer_head.h> |
28 | #include <linux/mm.h> | 28 | #include <linux/mm.h> |
29 | #include <linux/backing-dev.h> | 29 | #include <linux/backing-dev.h> |
30 | #include <linux/gfp.h> | ||
30 | #include "nilfs.h" | 31 | #include "nilfs.h" |
31 | #include "mdt.h" | 32 | #include "mdt.h" |
32 | #include "dat.h" | 33 | #include "dat.h" |
diff --git a/fs/nilfs2/btree.c b/fs/nilfs2/btree.c index 7cdd98b8d514..76c38e3e19d2 100644 --- a/fs/nilfs2/btree.c +++ b/fs/nilfs2/btree.c | |||
@@ -1879,7 +1879,7 @@ static int nilfs_btree_propagate_v(struct nilfs_btree *btree, | |||
1879 | struct nilfs_btree_path *path, | 1879 | struct nilfs_btree_path *path, |
1880 | int level, struct buffer_head *bh) | 1880 | int level, struct buffer_head *bh) |
1881 | { | 1881 | { |
1882 | int maxlevel, ret; | 1882 | int maxlevel = 0, ret; |
1883 | struct nilfs_btree_node *parent; | 1883 | struct nilfs_btree_node *parent; |
1884 | struct inode *dat = nilfs_bmap_get_dat(&btree->bt_bmap); | 1884 | struct inode *dat = nilfs_bmap_get_dat(&btree->bt_bmap); |
1885 | __u64 ptr; | 1885 | __u64 ptr; |
diff --git a/fs/nilfs2/gcinode.c b/fs/nilfs2/gcinode.c index 8880a9e281e7..145f03cd7d3e 100644 --- a/fs/nilfs2/gcinode.c +++ b/fs/nilfs2/gcinode.c | |||
@@ -45,6 +45,7 @@ | |||
45 | #include <linux/buffer_head.h> | 45 | #include <linux/buffer_head.h> |
46 | #include <linux/mpage.h> | 46 | #include <linux/mpage.h> |
47 | #include <linux/hash.h> | 47 | #include <linux/hash.h> |
48 | #include <linux/slab.h> | ||
48 | #include <linux/swap.h> | 49 | #include <linux/swap.h> |
49 | #include "nilfs.h" | 50 | #include "nilfs.h" |
50 | #include "page.h" | 51 | #include "page.h" |
diff --git a/fs/nilfs2/inode.c b/fs/nilfs2/inode.c index 7868cc122ac7..0957b58f909d 100644 --- a/fs/nilfs2/inode.c +++ b/fs/nilfs2/inode.c | |||
@@ -22,6 +22,7 @@ | |||
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <linux/buffer_head.h> | 24 | #include <linux/buffer_head.h> |
25 | #include <linux/gfp.h> | ||
25 | #include <linux/mpage.h> | 26 | #include <linux/mpage.h> |
26 | #include <linux/writeback.h> | 27 | #include <linux/writeback.h> |
27 | #include <linux/uio.h> | 28 | #include <linux/uio.h> |
diff --git a/fs/nilfs2/ioctl.c b/fs/nilfs2/ioctl.c index 313d0a21da48..f90a33d9a5b0 100644 --- a/fs/nilfs2/ioctl.c +++ b/fs/nilfs2/ioctl.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/fs.h> | 23 | #include <linux/fs.h> |
24 | #include <linux/wait.h> | 24 | #include <linux/wait.h> |
25 | #include <linux/smp_lock.h> /* lock_kernel(), unlock_kernel() */ | 25 | #include <linux/smp_lock.h> /* lock_kernel(), unlock_kernel() */ |
26 | #include <linux/slab.h> | ||
26 | #include <linux/capability.h> /* capable() */ | 27 | #include <linux/capability.h> /* capable() */ |
27 | #include <linux/uaccess.h> /* copy_from_user(), copy_to_user() */ | 28 | #include <linux/uaccess.h> /* copy_from_user(), copy_to_user() */ |
28 | #include <linux/vmalloc.h> | 29 | #include <linux/vmalloc.h> |
@@ -648,7 +649,7 @@ static int nilfs_ioctl_get_info(struct inode *inode, struct file *filp, | |||
648 | long nilfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) | 649 | long nilfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) |
649 | { | 650 | { |
650 | struct inode *inode = filp->f_dentry->d_inode; | 651 | struct inode *inode = filp->f_dentry->d_inode; |
651 | void __user *argp = (void * __user *)arg; | 652 | void __user *argp = (void __user *)arg; |
652 | 653 | ||
653 | switch (cmd) { | 654 | switch (cmd) { |
654 | case NILFS_IOCTL_CHANGE_CPMODE: | 655 | case NILFS_IOCTL_CHANGE_CPMODE: |
diff --git a/fs/nilfs2/mdt.c b/fs/nilfs2/mdt.c index 06713ffcc7f2..024be8c35bb6 100644 --- a/fs/nilfs2/mdt.c +++ b/fs/nilfs2/mdt.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <linux/writeback.h> | 26 | #include <linux/writeback.h> |
27 | #include <linux/backing-dev.h> | 27 | #include <linux/backing-dev.h> |
28 | #include <linux/swap.h> | 28 | #include <linux/swap.h> |
29 | #include <linux/slab.h> | ||
29 | #include "nilfs.h" | 30 | #include "nilfs.h" |
30 | #include "segment.h" | 31 | #include "segment.h" |
31 | #include "page.h" | 32 | #include "page.h" |
diff --git a/fs/nilfs2/page.c b/fs/nilfs2/page.c index fc246dba112a..8de3e1e48130 100644 --- a/fs/nilfs2/page.c +++ b/fs/nilfs2/page.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include <linux/list.h> | 29 | #include <linux/list.h> |
30 | #include <linux/highmem.h> | 30 | #include <linux/highmem.h> |
31 | #include <linux/pagevec.h> | 31 | #include <linux/pagevec.h> |
32 | #include <linux/gfp.h> | ||
32 | #include "nilfs.h" | 33 | #include "nilfs.h" |
33 | #include "page.h" | 34 | #include "page.h" |
34 | #include "mdt.h" | 35 | #include "mdt.h" |
diff --git a/fs/nilfs2/recovery.c b/fs/nilfs2/recovery.c index 017bedc761a0..ba43146f3c30 100644 --- a/fs/nilfs2/recovery.c +++ b/fs/nilfs2/recovery.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/buffer_head.h> | 23 | #include <linux/buffer_head.h> |
24 | #include <linux/blkdev.h> | 24 | #include <linux/blkdev.h> |
25 | #include <linux/swap.h> | 25 | #include <linux/swap.h> |
26 | #include <linux/slab.h> | ||
26 | #include <linux/crc32.h> | 27 | #include <linux/crc32.h> |
27 | #include "nilfs.h" | 28 | #include "nilfs.h" |
28 | #include "segment.h" | 29 | #include "segment.h" |
diff --git a/fs/nilfs2/segbuf.c b/fs/nilfs2/segbuf.c index 636eaafd6ea2..17851f77f739 100644 --- a/fs/nilfs2/segbuf.c +++ b/fs/nilfs2/segbuf.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/writeback.h> | 25 | #include <linux/writeback.h> |
26 | #include <linux/crc32.h> | 26 | #include <linux/crc32.h> |
27 | #include <linux/backing-dev.h> | 27 | #include <linux/backing-dev.h> |
28 | #include <linux/slab.h> | ||
28 | #include "page.h" | 29 | #include "page.h" |
29 | #include "segbuf.h" | 30 | #include "segbuf.h" |
30 | 31 | ||
@@ -323,14 +324,14 @@ int nilfs_write_logs(struct list_head *logs, struct the_nilfs *nilfs) | |||
323 | int nilfs_wait_on_logs(struct list_head *logs) | 324 | int nilfs_wait_on_logs(struct list_head *logs) |
324 | { | 325 | { |
325 | struct nilfs_segment_buffer *segbuf; | 326 | struct nilfs_segment_buffer *segbuf; |
326 | int err; | 327 | int err, ret = 0; |
327 | 328 | ||
328 | list_for_each_entry(segbuf, logs, sb_list) { | 329 | list_for_each_entry(segbuf, logs, sb_list) { |
329 | err = nilfs_segbuf_wait(segbuf); | 330 | err = nilfs_segbuf_wait(segbuf); |
330 | if (err) | 331 | if (err && !ret) |
331 | return err; | 332 | ret = err; |
332 | } | 333 | } |
333 | return 0; | 334 | return ret; |
334 | } | 335 | } |
335 | 336 | ||
336 | /* | 337 | /* |
diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c index 69576a95e13f..6a7dbd8451db 100644 --- a/fs/nilfs2/segment.c +++ b/fs/nilfs2/segment.c | |||
@@ -32,6 +32,7 @@ | |||
32 | #include <linux/kthread.h> | 32 | #include <linux/kthread.h> |
33 | #include <linux/crc32.h> | 33 | #include <linux/crc32.h> |
34 | #include <linux/pagevec.h> | 34 | #include <linux/pagevec.h> |
35 | #include <linux/slab.h> | ||
35 | #include "nilfs.h" | 36 | #include "nilfs.h" |
36 | #include "btnode.h" | 37 | #include "btnode.h" |
37 | #include "page.h" | 38 | #include "page.h" |
@@ -1510,6 +1511,12 @@ static int nilfs_segctor_collect(struct nilfs_sc_info *sci, | |||
1510 | if (mode != SC_LSEG_SR || sci->sc_stage.scnt < NILFS_ST_CPFILE) | 1511 | if (mode != SC_LSEG_SR || sci->sc_stage.scnt < NILFS_ST_CPFILE) |
1511 | break; | 1512 | break; |
1512 | 1513 | ||
1514 | nilfs_clear_logs(&sci->sc_segbufs); | ||
1515 | |||
1516 | err = nilfs_segctor_extend_segments(sci, nilfs, nadd); | ||
1517 | if (unlikely(err)) | ||
1518 | return err; | ||
1519 | |||
1513 | if (sci->sc_stage.flags & NILFS_CF_SUFREED) { | 1520 | if (sci->sc_stage.flags & NILFS_CF_SUFREED) { |
1514 | err = nilfs_sufile_cancel_freev(nilfs->ns_sufile, | 1521 | err = nilfs_sufile_cancel_freev(nilfs->ns_sufile, |
1515 | sci->sc_freesegs, | 1522 | sci->sc_freesegs, |
@@ -1517,12 +1524,6 @@ static int nilfs_segctor_collect(struct nilfs_sc_info *sci, | |||
1517 | NULL); | 1524 | NULL); |
1518 | WARN_ON(err); /* do not happen */ | 1525 | WARN_ON(err); /* do not happen */ |
1519 | } | 1526 | } |
1520 | nilfs_clear_logs(&sci->sc_segbufs); | ||
1521 | |||
1522 | err = nilfs_segctor_extend_segments(sci, nilfs, nadd); | ||
1523 | if (unlikely(err)) | ||
1524 | return err; | ||
1525 | |||
1526 | nadd = min_t(int, nadd << 1, SC_MAX_SEGDELTA); | 1527 | nadd = min_t(int, nadd << 1, SC_MAX_SEGDELTA); |
1527 | sci->sc_stage = prev_stage; | 1528 | sci->sc_stage = prev_stage; |
1528 | } | 1529 | } |
@@ -1897,8 +1898,7 @@ static void nilfs_segctor_abort_construction(struct nilfs_sc_info *sci, | |||
1897 | 1898 | ||
1898 | list_splice_tail_init(&sci->sc_write_logs, &logs); | 1899 | list_splice_tail_init(&sci->sc_write_logs, &logs); |
1899 | ret = nilfs_wait_on_logs(&logs); | 1900 | ret = nilfs_wait_on_logs(&logs); |
1900 | if (ret) | 1901 | nilfs_abort_logs(&logs, NULL, sci->sc_super_root, ret ? : err); |
1901 | nilfs_abort_logs(&logs, NULL, sci->sc_super_root, ret); | ||
1902 | 1902 | ||
1903 | list_splice_tail_init(&sci->sc_segbufs, &logs); | 1903 | list_splice_tail_init(&sci->sc_segbufs, &logs); |
1904 | nilfs_cancel_segusage(&logs, nilfs->ns_sufile); | 1904 | nilfs_cancel_segusage(&logs, nilfs->ns_sufile); |
diff --git a/fs/nilfs2/the_nilfs.h b/fs/nilfs2/the_nilfs.h index e9795f1724d7..1ab974533697 100644 --- a/fs/nilfs2/the_nilfs.h +++ b/fs/nilfs2/the_nilfs.h | |||
@@ -29,6 +29,7 @@ | |||
29 | #include <linux/fs.h> | 29 | #include <linux/fs.h> |
30 | #include <linux/blkdev.h> | 30 | #include <linux/blkdev.h> |
31 | #include <linux/backing-dev.h> | 31 | #include <linux/backing-dev.h> |
32 | #include <linux/slab.h> | ||
32 | #include "sb.h" | 33 | #include "sb.h" |
33 | 34 | ||
34 | /* the_nilfs struct */ | 35 | /* the_nilfs struct */ |