[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 05/31] 9pfs: remove side-effects in local_init()
From: |
Greg Kurz |
Subject: |
[Qemu-devel] [PULL 05/31] 9pfs: remove side-effects in local_init() |
Date: |
Mon, 27 Feb 2017 23:59:55 +0100 |
If this function fails, it should not modify *ctx.
Signed-off-by: Greg Kurz <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
---
hw/9pfs/9p-local.c | 37 +++++++++++++++++++------------------
1 file changed, 19 insertions(+), 18 deletions(-)
diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
index 2369b918aa3f..1ede63f57772 100644
--- a/hw/9pfs/9p-local.c
+++ b/hw/9pfs/9p-local.c
@@ -1168,9 +1168,25 @@ static int local_ioc_getversion(FsContext *ctx, V9fsPath
*path,
static int local_init(FsContext *ctx)
{
- int err = 0;
struct statfs stbuf;
+#ifdef FS_IOC_GETVERSION
+ /*
+ * use ioc_getversion only if the ioctl is definied
+ */
+ if (statfs(ctx->fs_root, &stbuf) < 0) {
+ return -1;
+ }
+ switch (stbuf.f_type) {
+ case EXT2_SUPER_MAGIC:
+ case BTRFS_SUPER_MAGIC:
+ case REISERFS_SUPER_MAGIC:
+ case XFS_SUPER_MAGIC:
+ ctx->exops.get_st_gen = local_ioc_getversion;
+ break;
+ }
+#endif
+
if (ctx->export_flags & V9FS_SM_PASSTHROUGH) {
ctx->xops = passthrough_xattr_ops;
} else if (ctx->export_flags & V9FS_SM_MAPPED) {
@@ -1185,23 +1201,8 @@ static int local_init(FsContext *ctx)
ctx->xops = passthrough_xattr_ops;
}
ctx->export_flags |= V9FS_PATHNAME_FSCONTEXT;
-#ifdef FS_IOC_GETVERSION
- /*
- * use ioc_getversion only if the iocl is definied
- */
- err = statfs(ctx->fs_root, &stbuf);
- if (!err) {
- switch (stbuf.f_type) {
- case EXT2_SUPER_MAGIC:
- case BTRFS_SUPER_MAGIC:
- case REISERFS_SUPER_MAGIC:
- case XFS_SUPER_MAGIC:
- ctx->exops.get_st_gen = local_ioc_getversion;
- break;
- }
- }
-#endif
- return err;
+
+ return 0;
}
static int local_parse_opts(QemuOpts *opts, struct FsDriverEntry *fse)
--
2.7.4
- [Qemu-devel] [PULL 00/31] 9p patches 2017-02-27 for 2.9 soft freeze, Greg Kurz, 2017/02/27
- [Qemu-devel] [PULL 05/31] 9pfs: remove side-effects in local_init(),
Greg Kurz <=
- [Qemu-devel] [PULL 07/31] 9pfs: introduce relative_openat_nofollow() helper, Greg Kurz, 2017/02/27
- [Qemu-devel] [PULL 08/31] 9pfs: local: keep a file descriptor on the shared folder, Greg Kurz, 2017/02/27
- [Qemu-devel] [PULL 11/31] 9pfs: local: llistxattr: don't follow symlinks, Greg Kurz, 2017/02/27
- [Qemu-devel] [PULL 13/31] 9pfs: local: lremovexattr: don't follow symlinks, Greg Kurz, 2017/02/27
- [Qemu-devel] [PULL 06/31] 9pfs: remove side-effects in local_open() and local_opendir(), Greg Kurz, 2017/02/27
- [Qemu-devel] [PULL 10/31] 9pfs: local: lgetxattr: don't follow symlinks, Greg Kurz, 2017/02/27
- [Qemu-devel] [PULL 01/31] 9pfs: fix v9fs_lock error case, Greg Kurz, 2017/02/27
- [Qemu-devel] [PULL 02/31] fsdev: add IO throttle support to fsdev devices, Greg Kurz, 2017/02/27