forked from pool/lxcfs
OBS-URL: https://build.opensuse.org/request/show/423993 OBS-URL: https://build.opensuse.org/package/show/Virtualization:containers/lxcfs?expand=0&rev=6
101 lines
2.8 KiB
Diff
101 lines
2.8 KiB
Diff
From 2f7036d08de5c60c72985b37f8ff5c01d248109a Mon Sep 17 00:00:00 2001
|
|
From: Christian Brauner <cbrauner@suse.de>
|
|
Date: Mon, 22 Aug 2016 12:20:10 +0200
|
|
Subject: [PATCH 15/24] bindings: more consistent fs behavior
|
|
|
|
- e.g. let cg_mkdir() return EPERM
|
|
|
|
Signed-off-by: Christian Brauner <cbrauner@suse.de>
|
|
---
|
|
bindings.c | 18 +++++++++---------
|
|
1 file changed, 9 insertions(+), 9 deletions(-)
|
|
|
|
diff --git a/bindings.c b/bindings.c
|
|
index f3cd85d..281aad2 100644
|
|
--- a/bindings.c
|
|
+++ b/bindings.c
|
|
@@ -1605,7 +1605,7 @@ int cg_getattr(const char *path, struct stat *sb)
|
|
|
|
controller = pick_controller_from_path(fc, path);
|
|
if (!controller)
|
|
- return -EIO;
|
|
+ return -errno;
|
|
cgroup = find_cgroup_in_path(path);
|
|
if (!cgroup) {
|
|
/* this is just /cgroup/controller, return it as a dir */
|
|
@@ -1705,7 +1705,7 @@ int cg_opendir(const char *path, struct fuse_file_info *fi)
|
|
// return list of keys for the controller, and list of child cgroups
|
|
controller = pick_controller_from_path(fc, path);
|
|
if (!controller)
|
|
- return -EIO;
|
|
+ return -errno;
|
|
|
|
cgroup = find_cgroup_in_path(path);
|
|
if (!cgroup) {
|
|
@@ -1863,7 +1863,7 @@ int cg_open(const char *path, struct fuse_file_info *fi)
|
|
|
|
controller = pick_controller_from_path(fc, path);
|
|
if (!controller)
|
|
- return -EIO;
|
|
+ return -errno;
|
|
cgroup = find_cgroup_in_path(path);
|
|
if (!cgroup)
|
|
return -EINVAL;
|
|
@@ -1937,7 +1937,7 @@ int cg_access(const char *path, int mode)
|
|
|
|
controller = pick_controller_from_path(fc, path);
|
|
if (!controller)
|
|
- return -EIO;
|
|
+ return -errno;
|
|
cgroup = find_cgroup_in_path(path);
|
|
if (!cgroup) {
|
|
// access("/sys/fs/cgroup/systemd", mode) - rx allowed, w not
|
|
@@ -2724,7 +2724,7 @@ int cg_chown(const char *path, uid_t uid, gid_t gid)
|
|
|
|
controller = pick_controller_from_path(fc, path);
|
|
if (!controller)
|
|
- return -EINVAL;
|
|
+ return -errno;
|
|
cgroup = find_cgroup_in_path(path);
|
|
if (!cgroup)
|
|
/* this is just /cgroup/controller */
|
|
@@ -2789,7 +2789,7 @@ int cg_chmod(const char *path, mode_t mode)
|
|
|
|
controller = pick_controller_from_path(fc, path);
|
|
if (!controller)
|
|
- return -EINVAL;
|
|
+ return -errno;
|
|
cgroup = find_cgroup_in_path(path);
|
|
if (!cgroup)
|
|
/* this is just /cgroup/controller */
|
|
@@ -2854,7 +2854,7 @@ int cg_mkdir(const char *path, mode_t mode)
|
|
|
|
controller = pick_controller_from_path(fc, path);
|
|
if (!controller)
|
|
- return -EINVAL;
|
|
+ return errno == ENOENT ? -EPERM : -errno;
|
|
|
|
cgroup = find_cgroup_in_path(path);
|
|
if (!cgroup)
|
|
@@ -2875,7 +2875,7 @@ int cg_mkdir(const char *path, mode_t mode)
|
|
else if (last && strcmp(next, last) == 0)
|
|
ret = -EEXIST;
|
|
else
|
|
- ret = -ENOENT;
|
|
+ ret = -EPERM;
|
|
goto out;
|
|
}
|
|
|
|
@@ -2908,7 +2908,7 @@ int cg_rmdir(const char *path)
|
|
|
|
controller = pick_controller_from_path(fc, path);
|
|
if (!controller)
|
|
- return -EINVAL;
|
|
+ return -errno;
|
|
|
|
cgroup = find_cgroup_in_path(path);
|
|
if (!cgroup)
|
|
--
|
|
2.9.3
|
|
|