aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/super.c
diff options
context:
space:
mode:
authorYan <yanzheng@21cn.com>2008-01-22 12:46:56 -0500
committerChris Mason <chris.mason@oracle.com>2008-09-25 11:03:59 -0400
commited0dab6b86cee64e9072107f65fa40629f162b38 (patch)
tree40ef1188dead7599796a01adfcece2565c901129 /fs/btrfs/super.c
parentBtrfs: Fix for test_range_bit (diff)
downloadlinux-dev-ed0dab6b86cee64e9072107f65fa40629f162b38.tar.xz
linux-dev-ed0dab6b86cee64e9072107f65fa40629f162b38.zip
Btrfs: Add basic lockfs calls
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/super.c')
-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 b6982f0133cf..8b52c69fda2e 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;