int sysctl_op(struct sysctl_req *req, size_t nr_req, int op) { int ret = 0; int dir = -1; dir = open("/proc/sys", O_RDONLY); if (dir < 0) { pr_perror("Can't open sysctl dir"); return -1; } while (nr_req--) { ret = __sysctl_op(dir, req, op); if (ret < 0) break; req++; } close_safe(&dir); return ret; }
int sysctl_op(struct sysctl_req *req, int op) { int ret = 0; int dir = -1; if (op != CTL_PRINT && op != CTL_SHOW) { dir = open("/proc/sys", O_RDONLY); if (dir < 0) { pr_perror("Can't open sysctl dir"); return -1; } } while (req->name) { ret = __sysctl_op(dir, req, op); if (ret < 0) break; req++; } close_safe(&dir); return ret; }