Register .sync_fs handler
[zfs.git] / module / zfs / zpl_super.c
index 0417ce2..73e5268 100644 (file)
@@ -105,6 +105,20 @@ zpl_put_super(struct super_block *sb)
 }
 
 static int
+zpl_sync_fs(struct super_block *sb, int wait)
+{
+       cred_t *cr;
+       int error;
+
+       cr = (cred_t *)get_current_cred();
+       error = -zfs_sync(sb, wait, cr);
+       put_cred(cr);
+       ASSERT3S(error, <=, 0);
+
+       return (error);
+}
+
+static int
 zpl_statfs(struct dentry *dentry, struct kstatfs *statp)
 {
        int error;
@@ -179,7 +193,7 @@ const struct super_operations zpl_super_operations = {
 #endif /* HAVE_EVICT_INODE */
        .put_super      = zpl_put_super,
        .write_super    = NULL,
-       .sync_fs        = NULL,
+       .sync_fs        = zpl_sync_fs,
        .freeze_fs      = NULL,
        .unfreeze_fs    = NULL,
        .statfs         = zpl_statfs,