git://git.camperquake.de
/
zfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Register .sync_fs handler
[zfs.git]
/
module
/
zfs
/
zpl_super.c
diff --git
a/module/zfs/zpl_super.c
b/module/zfs/zpl_super.c
index
0417ce2
..
73e5268
100644
(file)
--- a/
module/zfs/zpl_super.c
+++ b/
module/zfs/zpl_super.c
@@
-105,6
+105,20
@@
zpl_put_super(struct super_block *sb)
}
static int
}
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;
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,
#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,
.freeze_fs = NULL,
.unfreeze_fs = NULL,
.statfs = zpl_statfs,