Lines Matching refs:attr
894 struct simple_attr *attr;
896 attr = kzalloc(sizeof(*attr), GFP_KERNEL);
897 if (!attr)
900 attr->get = get;
901 attr->set = set;
902 attr->data = inode->i_private;
903 attr->fmt = fmt;
904 mutex_init(&attr->mutex);
906 file->private_data = attr;
923 struct simple_attr *attr;
927 attr = file->private_data;
929 if (!attr->get)
932 ret = mutex_lock_interruptible(&attr->mutex);
936 if (*ppos && attr->get_buf[0]) {
938 size = strlen(attr->get_buf);
942 ret = attr->get(attr->data, &val);
946 size = scnprintf(attr->get_buf, sizeof(attr->get_buf),
947 attr->fmt, (unsigned long long)val);
950 ret = simple_read_from_buffer(buf, len, ppos, attr->get_buf, size);
952 mutex_unlock(&attr->mutex);
961 struct simple_attr *attr;
966 attr = file->private_data;
967 if (!attr->set)
970 ret = mutex_lock_interruptible(&attr->mutex);
975 size = min(sizeof(attr->set_buf) - 1, len);
976 if (copy_from_user(attr->set_buf, buf, size))
979 attr->set_buf[size] = '\0';
981 ret = kstrtoll(attr->set_buf, 0, &val);
983 ret = kstrtoull(attr->set_buf, 0, &val);
986 ret = attr->set(attr->data, val);
990 mutex_unlock(&attr->mutex);
1327 static int empty_dir_setattr(struct dentry *dentry, struct iattr *attr)