Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2d9c98ae authored by Sage Weil's avatar Sage Weil
Browse files

ceph: make ->sync_fs not wait if wait==0



The ->sync_fs() super op only needs to wait if wait is true.  Otherwise,
just get some dirty cap writeback started.

Signed-off-by: default avatarSage Weil <sage@newdream.net>
parent b8cd07e7
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -102,12 +102,21 @@ static int ceph_statfs(struct dentry *dentry, struct kstatfs *buf)
}


static int ceph_syncfs(struct super_block *sb, int wait)
static int ceph_sync_fs(struct super_block *sb, int wait)
{
	dout("sync_fs %d\n", wait);
	struct ceph_client *client = ceph_sb_to_client(sb);

	if (!wait) {
		dout("sync_fs (non-blocking)\n");
		ceph_flush_dirty_caps(&client->mdsc);
		dout("sync_fs (non-blocking) done\n");
		return 0;
	}

	dout("sync_fs (blocking)\n");
	ceph_osdc_sync(&ceph_sb_to_client(sb)->osdc);
	ceph_mdsc_sync(&ceph_sb_to_client(sb)->mdsc);
	dout("sync_fs %d done\n", wait);
	dout("sync_fs (blocking) done\n");
	return 0;
}

@@ -278,7 +287,7 @@ static const struct super_operations ceph_super_ops = {
	.alloc_inode	= ceph_alloc_inode,
	.destroy_inode	= ceph_destroy_inode,
	.write_inode    = ceph_write_inode,
	.sync_fs        = ceph_syncfs,
	.sync_fs        = ceph_sync_fs,
	.put_super	= ceph_put_super,
	.show_options   = ceph_show_options,
	.statfs		= ceph_statfs,