summaryrefslogtreecommitdiff
path: root/libdiskfs
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2012-09-22 23:45:28 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2012-09-22 23:45:28 +0200
commit1cb18e1e0de4873f98c58e23e1ed133c3914272f (patch)
treeb9fe3af5854b2d82484116302ae6eb868ded864a /libdiskfs
parent015d12aaa7a63dbec0ba2230298caa7b5d802c2b (diff)
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.
Diffstat (limited to 'libdiskfs')
-rw-r--r--libdiskfs/dir-init.c2
-rw-r--r--libdiskfs/dir-link.c2
-rw-r--r--libdiskfs/dir-rename.c2
-rw-r--r--libdiskfs/dir-renamed.c2
-rw-r--r--libdiskfs/file-set-trans.c2
-rw-r--r--libdiskfs/node-create.c2
-rw-r--r--libdiskfs/node-drop.c2
7 files changed, 7 insertions, 7 deletions
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