00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include <stdint.h>
00019 #include <errno.h>
00020
00021 #include "linux/vserver/switch.h"
00022 #include "linux/vserver/inode_cmd.h"
00023
00024 #include "vserver.h"
00025
00026 int ix_attr_set(ix_attr_t *data)
00027 {
00028 struct vcmd_ctx_iattr_v1 kdata;
00029
00030 if (!data)
00031 return errno = EINVAL, -1;
00032
00033 kdata.name = data->filename;
00034 kdata.xid = data->xid;
00035 kdata.flags = data->flags;
00036 kdata.mask = data->mask;
00037
00038 return vserver(VCMD_set_iattr, 0, &kdata);
00039 }
00040
00041 int ix_attr_get(ix_attr_t *data)
00042 {
00043 int rc;
00044 struct vcmd_ctx_iattr_v1 kdata;
00045
00046 if (!data)
00047 return errno = EINVAL, -1;
00048
00049 kdata.name = data->filename;
00050
00051 rc = vserver(VCMD_get_iattr, 0, &kdata);
00052
00053 if (rc == -1)
00054 return rc;
00055
00056 data->xid = kdata.xid;
00057 data->flags = kdata.flags;
00058 data->mask = kdata.mask;
00059
00060 return rc;
00061 }