Lines Matching refs:attr
142 struct mq_attr attr;
227 info->attr.mq_curmsgs++;
262 if (info->attr.mq_curmsgs) {
266 info->attr.mq_curmsgs = 0;
285 info->attr.mq_curmsgs--;
292 struct mq_attr *attr)
326 memset(&info->attr, 0, sizeof(info->attr));
327 info->attr.mq_maxmsg = min(ipc_ns->mq_msg_max,
329 info->attr.mq_msgsize = min(ipc_ns->mq_msgsize_max,
331 if (attr) {
332 info->attr.mq_maxmsg = attr->mq_maxmsg;
333 info->attr.mq_msgsize = attr->mq_msgsize;
350 if (info->attr.mq_maxmsg <= 0 || info->attr.mq_msgsize <= 0)
353 if (info->attr.mq_maxmsg > HARD_MSGMAX ||
354 info->attr.mq_msgsize > HARD_MSGSIZEMAX)
357 if (info->attr.mq_maxmsg > ipc_ns->mq_msg_max ||
358 info->attr.mq_msgsize > ipc_ns->mq_msgsize_max)
363 if (info->attr.mq_msgsize > ULONG_MAX/info->attr.mq_maxmsg)
365 mq_treesize = info->attr.mq_maxmsg * sizeof(struct msg_msg) +
366 min_t(unsigned int, info->attr.mq_maxmsg, MQ_PRIO_MAX) *
368 mq_bytes = info->attr.mq_maxmsg * info->attr.mq_msgsize;
541 mq_treesize = info->attr.mq_maxmsg * sizeof(struct msg_msg) +
542 min_t(unsigned int, info->attr.mq_maxmsg, MQ_PRIO_MAX) *
545 mq_bytes = mq_treesize + (info->attr.mq_maxmsg *
546 info->attr.mq_msgsize);
570 struct mq_attr *attr = arg;
589 inode = mqueue_get_inode(dir->i_sb, ipc_ns, mode, attr);
684 if (info->attr.mq_curmsgs)
687 if (info->attr.mq_curmsgs < info->attr.mq_maxmsg)
791 info->attr.mq_curmsgs == 1) {
869 struct mq_attr *attr)
882 mqueue_create_attr, attr);
895 struct mq_attr *attr)
904 audit_mq_open(oflag, mode, attr);
921 error = prepare_open(path.dentry, oflag, ro, mode, name, attr);
946 struct mq_attr attr;
947 if (u_attr && copy_from_user(&attr, u_attr, sizeof(struct mq_attr)))
950 return do_mq_open(u_name, oflag, mode, u_attr ? &attr : NULL);
1105 if (unlikely(msg_len > info->attr.mq_msgsize)) {
1139 if (info->attr.mq_curmsgs == info->attr.mq_maxmsg) {
1220 if (unlikely(msg_len < info->attr.mq_msgsize)) {
1243 if (info->attr.mq_curmsgs == 0) {
1475 *old = info->attr;
1530 static inline int get_compat_mq_attr(struct mq_attr *attr,
1538 memset(attr, 0, sizeof(*attr));
1539 attr->mq_flags = v.mq_flags;
1540 attr->mq_maxmsg = v.mq_maxmsg;
1541 attr->mq_msgsize = v.mq_msgsize;
1542 attr->mq_curmsgs = v.mq_curmsgs;
1546 static inline int put_compat_mq_attr(const struct mq_attr *attr,
1552 v.mq_flags = attr->mq_flags;
1553 v.mq_maxmsg = attr->mq_maxmsg;
1554 v.mq_msgsize = attr->mq_msgsize;
1555 v.mq_curmsgs = attr->mq_curmsgs;
1565 struct mq_attr attr, *p = NULL;
1567 p = &attr;
1568 if (get_compat_mq_attr(&attr, u_attr))