summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYan <yanzheng@21cn.com>2008-01-22 17:46:56 (GMT)
committerChris Mason <chris.mason@oracle.com>2008-09-25 15:03:59 (GMT)
commited0dab6b86cee64e9072107f65fa40629f162b38 (patch)
tree40ef1188dead7599796a01adfcece2565c901129
parentf0c5da1446cc500856a5e31c9a0e2a7bdd30e663 (diff)
downloadlinux-ed0dab6b86cee64e9072107f65fa40629f162b38.tar.xz
Btrfs: Add basic lockfs calls
Signed-off-by: Chris Mason <chris.mason@oracle.com>
-rw-r--r--fs/btrfs/super.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index b6982f0..8b52c69 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -429,6 +429,17 @@ static struct file_system_type btrfs_fs_type = {
.kill_sb = kill_block_super,
.fs_flags = FS_REQUIRES_DEV,
};
+static void btrfs_write_super_lockfs(struct super_block *sb)
+{
+ struct btrfs_root *root = btrfs_sb(sb);
+ btrfs_transaction_flush_work(root);
+}
+
+static void btrfs_unlockfs(struct super_block *sb)
+{
+ struct btrfs_root *root = btrfs_sb(sb);
+ btrfs_transaction_queue_work(root, HZ * 30);
+}
static struct super_operations btrfs_super_ops = {
.delete_inode = btrfs_delete_inode,
@@ -442,8 +453,9 @@ static struct super_operations btrfs_super_ops = {
.alloc_inode = btrfs_alloc_inode,
.destroy_inode = btrfs_destroy_inode,
.statfs = btrfs_statfs,
+ .write_super_lockfs = btrfs_write_super_lockfs,
+ .unlockfs = btrfs_unlockfs,
};
-
static int __init init_btrfs_fs(void)
{
int err;