X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=fs%2Fadfs%2Fdir.c;fp=fs%2Fadfs%2Fdir.c;h=4d4073447d1a7cabcadb22491728bbc977c45720;hb=ffdc9064f8b4fa9db37a7d5180f41cce2ea2b7ad;hp=e867ccf372466aaa495d360cc1605fb43a05dc95;hpb=bea6b64c277f0824cdaea6190209b26a164419d6;p=safe%2Fjmp%2Flinux-2.6 diff --git a/fs/adfs/dir.c b/fs/adfs/dir.c index e867ccf..4d40734 100644 --- a/fs/adfs/dir.c +++ b/fs/adfs/dir.c @@ -83,7 +83,7 @@ out: } int -adfs_dir_update(struct super_block *sb, struct object_info *obj) +adfs_dir_update(struct super_block *sb, struct object_info *obj, int wait) { int ret = -EINVAL; #ifdef CONFIG_ADFS_FS_RW @@ -106,6 +106,12 @@ adfs_dir_update(struct super_block *sb, struct object_info *obj) ret = ops->update(&dir, obj); write_unlock(&adfs_dir_lock); + if (wait) { + int err = ops->sync(&dir); + if (!ret) + ret = err; + } + ops->free(&dir); out: #endif @@ -199,7 +205,7 @@ const struct file_operations adfs_dir_operations = { .read = generic_read_dir, .llseek = generic_file_llseek, .readdir = adfs_readdir, - .fsync = file_fsync, + .fsync = simple_fsync, }; static int