From 1cb18e1e0de4873f98c58e23e1ed133c3914272f Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sat, 22 Sep 2012 23:45:28 +0200 Subject: Avoid waiting for disk I/O completion This improves performance quite a bit, and is not less safe. * ext2fs/dir.c (diskfs_direnter_hard, diskfs_dirremove_hard, diskfs_dirrewrite_hard): Pass diskfs_synchronous instead of 1 as wait parameter to diskfs_file_update. * ext2fs/truncate.c (diskfs_truncate): Likewise. * libdiskfs/dir-init.c (diskfs_init_dir): Likewise. * libdiskfs/dir-link.c (diskfs_S_dir_link): Likewise. * libdiskfs/dir-rename.c (diskfs_S_dir_rename): Likewise. * libdiskfs/dir-renamed.c (diskfs_rename_dir): Likewise. * libdiskfs/file-set-trans.c (diskfs_S_file_set_translator): Likewise. * libdiskfs/node-create.c (diskfs_create_node): Likewise. * libdiskfs/node-drop.c (diskfs_drop_node): Likewise. --- libdiskfs/dir-init.c | 2 +- libdiskfs/dir-link.c | 2 +- libdiskfs/dir-rename.c | 2 +- libdiskfs/dir-renamed.c | 2 +- libdiskfs/file-set-trans.c | 2 +- libdiskfs/node-create.c | 2 +- libdiskfs/node-drop.c | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) (limited to 'libdiskfs') diff --git a/libdiskfs/dir-init.c b/libdiskfs/dir-init.c index 2cba3a4b..4efded07 100644 --- a/libdiskfs/dir-init.c +++ b/libdiskfs/dir-init.c @@ -63,6 +63,6 @@ diskfs_init_dir (struct node *dp, struct node *pdp, struct protid *cred) return err; } - diskfs_node_update (dp, 1); + diskfs_node_update (dp, diskfs_synchronous); return 0; } diff --git a/libdiskfs/dir-link.c b/libdiskfs/dir-link.c index 81a45b5f..82f8aeec 100644 --- a/libdiskfs/dir-link.c +++ b/libdiskfs/dir-link.c @@ -101,7 +101,7 @@ diskfs_S_dir_link (struct protid *dircred, } np->dn_stat.st_nlink++; np->dn_set_ctime = 1; - diskfs_node_update (np, 1); + diskfs_node_update (np, diskfs_synchronous); /* Attach it */ if (tnp) diff --git a/libdiskfs/dir-rename.c b/libdiskfs/dir-rename.c index 867e395d..298669be 100644 --- a/libdiskfs/dir-rename.c +++ b/libdiskfs/dir-rename.c @@ -164,7 +164,7 @@ diskfs_S_dir_rename (struct protid *fromcred, } fnp->dn_stat.st_nlink++; fnp->dn_set_ctime = 1; - diskfs_node_update (fnp, 1); + diskfs_node_update (fnp, diskfs_synchronous); if (tnp) { diff --git a/libdiskfs/dir-renamed.c b/libdiskfs/dir-renamed.c index 79381b2c..3064dbaf 100644 --- a/libdiskfs/dir-renamed.c +++ b/libdiskfs/dir-renamed.c @@ -176,7 +176,7 @@ diskfs_rename_dir (struct node *fdp, struct node *fnp, const char *fromname, } fnp->dn_stat.st_nlink++; fnp->dn_set_ctime = 1; - diskfs_node_update (fnp, 1); + diskfs_node_update (fnp, diskfs_synchronous); if (tnp) { diff --git a/libdiskfs/file-set-trans.c b/libdiskfs/file-set-trans.c index 26a19eb4..c9b2c613 100644 --- a/libdiskfs/file-set-trans.c +++ b/libdiskfs/file-set-trans.c @@ -196,7 +196,7 @@ diskfs_S_file_set_translator (struct protid *cred, if (!error) { np->dn_stat.st_mode = newmode; - diskfs_node_update (np, 1); + diskfs_node_update (np, diskfs_synchronous); } mutex_unlock (&np->lock); return error; diff --git a/libdiskfs/node-create.c b/libdiskfs/node-create.c index 4a7d108d..5b5e4639 100644 --- a/libdiskfs/node-create.c +++ b/libdiskfs/node-create.c @@ -131,7 +131,7 @@ diskfs_create_node (struct node *dir, if (S_ISDIR (mode)) err = diskfs_init_dir (np, dir, cred); - diskfs_node_update (np, 1); + diskfs_node_update (np, diskfs_synchronous); if (err) { diff --git a/libdiskfs/node-drop.c b/libdiskfs/node-drop.c index f44966ba..c3d32c96 100644 --- a/libdiskfs/node-drop.c +++ b/libdiskfs/node-drop.c @@ -78,7 +78,7 @@ diskfs_drop_node (struct node *np) np->dn_stat.st_mode = 0; np->dn_stat.st_rdev = 0; np->dn_set_ctime = np->dn_set_atime = 1; - diskfs_node_update (np, 1); + diskfs_node_update (np, diskfs_synchronous); diskfs_free_node (np, savemode); } else -- cgit v1.2.3