2013年12月19日木曜日

btrfs on Linux 3.12.5

ZFSに疲れたので btrfs をインストールしてみた。 Linux 3.12.5 をインストールしたのちに

cd ~/btrfs-progs/; make; make install

cd ~/linux-btrfs/fs/btrfs/; make -C ~/linux-3.12.5/ M=${PWD} modules &&

    make -C ~/linux-3.12.5/ M=${PWD} modules_install


してみただけ。あ、そういえば truncate_pagecache() の定義が変わっていてコンパイルが通らなかったので手許で修正した。メインツリーの btrfs はこうなっているようです。




--- a/fs/btrfs/free-space-cache.c
+++ b/fs/btrfs/free-space-cache.c
@@ -226,7 +226,7 @@ int btrfs_truncate_free_space_cache(struct btrfs_root *root,
oldsize = i_size_read(inode);
btrfs_i_size_write(inode, 0);
- truncate_pagecache(inode, oldsize, 0);
+ truncate_pagecache(inode, 0);
/*
* We don't need an orphan item because truncating the free space cache
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 3b4ffaf..75fd973 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -4349,7 +4349,8 @@ static int btrfs_setsize(struct inode *inode, struct iattr *attr)
inode->i_ctime = inode->i_mtime = current_fs_time(inode->i_sb);
if (newsize > oldsize) {
- truncate_pagecache(inode, oldsize, newsize);
+ truncate_pagecache(inode, newsize);
ret = btrfs_cont_expand(inode, oldsize, newsize);
if (ret)
return ret;


0 件のコメント:

コメントを投稿