@@ -152,23 +152,16 @@ static int local_set_xattr(const char *path, FsCred *credp)
return 0;
}
-static int local_post_create_passthrough(FsContext *fs_ctx, const char *path,
- FsCred *credp)
+static int local_post_create_none(const char *path, FsCred *credp)
{
- char buffer[PATH_MAX];
+ int retval;
- if (chmod(rpath(fs_ctx, path, buffer), credp->fc_mode & 07777) < 0) {
+ if (chmod(path, credp->fc_mode & 07777) < 0) {
return -1;
}
- if (lchown(rpath(fs_ctx, path, buffer), 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(path, credp->fc_uid, credp->fc_gid);
+ if (retval < 0) {
+ /* Ignore return value for none security model */
}
return 0;
}
@@ -333,7 +326,7 @@ static int local_mknod(FsContext *fs_ctx, V9fsPath *dir_path,
if (err == -1) {
goto out;
}
- err = local_post_create_passthrough(fs_ctx, path, credp);
+ err = local_post_create_none(buffer, credp);
if (err == -1) {
serrno = errno;
goto err_end;
@@ -381,7 +374,7 @@ static int local_mkdir(FsContext *fs_ctx, V9fsPath *dir_path,
if (err == -1) {
goto out;
}
- err = local_post_create_passthrough(fs_ctx, path, credp);
+ err = local_post_create_none(buffer, credp);
if (err == -1) {
serrno = errno;
goto err_end;
@@ -463,7 +456,7 @@ static int local_open2(FsContext *fs_ctx, V9fsPath *dir_path, const char *name,
err = fd;
goto out;
}
- err = local_post_create_passthrough(fs_ctx, path, credp);
+ err = local_post_create_none(buffer, credp);
if (err == -1) {
serrno = errno;
goto err_end;