On Tue, Jan 18, 2011 at 01:54:16PM +0530, M. Mohan Kumar wrote: > After creating a file object, its permission and ownership details are updated > as per client's request for both passthrough and none security model. But with > chrooted environment its not required for passthrough security model. Move all > post file creation changes to none security model > > Signed-off-by: M. Mohan Kumar <mo...@in.ibm.com> > --- > hw/9pfs/virtio-9p-local.c | 19 ++++++------------- > 1 files changed, 6 insertions(+), 13 deletions(-) > > diff --git a/hw/9pfs/virtio-9p-local.c b/hw/9pfs/virtio-9p-local.c > index 08fd67f..d2e32e2 100644 > --- a/hw/9pfs/virtio-9p-local.c > +++ b/hw/9pfs/virtio-9p-local.c > @@ -208,21 +208,14 @@ static int local_set_xattr(const char *path, FsCred > *credp) > return 0; > } > > -static int local_post_create_passthrough(FsContext *fs_ctx, const char *path, > +static int local_post_create_none(FsContext *fs_ctx, const char *path, > FsCred *credp) > { > + int retval; > if (chmod(rpath(fs_ctx, path), credp->fc_mode & 07777) < 0) { > return -1; > } > - if (lchown(rpath(fs_ctx, path), credp->fc_uid, credp->fc_gid) < 0) { > - /* > - * If we fail to change ownership and if we are > - * using security model none. Ignore the error > - */ > - if (fs_ctx->fs_sm != SM_NONE) { > - return -1; > - } > - } > + retval = lchown(rpath(fs_ctx, path), credp->fc_uid, credp->fc_gid); > return 0; > }
retval is unused. Can multiple virtio-9p requests execute at a time? chmod() and lchown() after creation is a race condition if other requests can execute concurrently. Stefan