linux/ipc/mqueue.c
<<
>>
Prefs
   1/*
   2 * POSIX message queues filesystem for Linux.
   3 *
   4 * Copyright (C) 2003,2004  Krzysztof Benedyczak    (golbi@mat.uni.torun.pl)
   5 *                          Michal Wronski          (michal.wronski@gmail.com)
   6 *
   7 * Spinlocks:               Mohamed Abbas           (abbas.mohamed@intel.com)
   8 * Lockless receive & send, fd based notify:
   9 *                          Manfred Spraul          (manfred@colorfullife.com)
  10 *
  11 * Audit:                   George Wilson           (ltcgcw@us.ibm.com)
  12 *
  13 * This file is released under the GPL.
  14 */
  15
  16#include <linux/capability.h>
  17#include <linux/init.h>
  18#include <linux/pagemap.h>
  19#include <linux/file.h>
  20#include <linux/mount.h>
  21#include <linux/namei.h>
  22#include <linux/sysctl.h>
  23#include <linux/poll.h>
  24#include <linux/mqueue.h>
  25#include <linux/msg.h>
  26#include <linux/skbuff.h>
  27#include <linux/vmalloc.h>
  28#include <linux/netlink.h>
  29#include <linux/syscalls.h>
  30#include <linux/audit.h>
  31#include <linux/signal.h>
  32#include <linux/mutex.h>
  33#include <linux/nsproxy.h>
  34#include <linux/pid.h>
  35#include <linux/ipc_namespace.h>
  36#include <linux/user_namespace.h>
  37#include <linux/slab.h>
  38
  39#include <net/sock.h>
  40#include "util.h"
  41
  42#define MQUEUE_MAGIC    0x19800202
  43#define DIRENT_SIZE     20
  44#define FILENT_SIZE     80
  45
  46#define SEND            0
  47#define RECV            1
  48
  49#define STATE_NONE      0
  50#define STATE_PENDING   1
  51#define STATE_READY     2
  52
  53struct posix_msg_tree_node {
  54        struct rb_node          rb_node;
  55        struct list_head        msg_list;
  56        int                     priority;
  57};
  58
  59struct ext_wait_queue {         /* queue of sleeping tasks */
  60        struct task_struct *task;
  61        struct list_head list;
  62        struct msg_msg *msg;    /* ptr of loaded message */
  63        int state;              /* one of STATE_* values */
  64};
  65
  66struct mqueue_inode_info {
  67        spinlock_t lock;
  68        struct inode vfs_inode;
  69        wait_queue_head_t wait_q;
  70
  71        struct rb_root msg_tree;
  72        struct posix_msg_tree_node *node_cache;
  73        struct mq_attr attr;
  74
  75        struct sigevent notify;
  76        struct pid* notify_owner;
  77        struct user_namespace *notify_user_ns;
  78        struct user_struct *user;       /* user who created, for accounting */
  79        struct sock *notify_sock;
  80        struct sk_buff *notify_cookie;
  81
  82        /* for tasks waiting for free space and messages, respectively */
  83        struct ext_wait_queue e_wait_q[2];
  84
  85        unsigned long qsize; /* size of queue in memory (sum of all msgs) */
  86};
  87
  88static const struct inode_operations mqueue_dir_inode_operations;
  89static const struct file_operations mqueue_file_operations;
  90static const struct super_operations mqueue_super_ops;
  91static void remove_notification(struct mqueue_inode_info *info);
  92
  93static struct kmem_cache *mqueue_inode_cachep;
  94
  95static struct ctl_table_header * mq_sysctl_table;
  96
  97static inline struct mqueue_inode_info *MQUEUE_I(struct inode *inode)
  98{
  99        return container_of(inode, struct mqueue_inode_info, vfs_inode);
 100}
 101
 102/*
 103 * This routine should be called with the mq_lock held.
 104 */
 105static inline struct ipc_namespace *__get_ns_from_inode(struct inode *inode)
 106{
 107        return get_ipc_ns(inode->i_sb->s_fs_info);
 108}
 109
 110static struct ipc_namespace *get_ns_from_inode(struct inode *inode)
 111{
 112        struct ipc_namespace *ns;
 113
 114        spin_lock(&mq_lock);
 115        ns = __get_ns_from_inode(inode);
 116        spin_unlock(&mq_lock);
 117        return ns;
 118}
 119
 120/* Auxiliary functions to manipulate messages' list */
 121static int msg_insert(struct msg_msg *msg, struct mqueue_inode_info *info)
 122{
 123        struct rb_node **p, *parent = NULL;
 124        struct posix_msg_tree_node *leaf;
 125
 126        p = &info->msg_tree.rb_node;
 127        while (*p) {
 128                parent = *p;
 129                leaf = rb_entry(parent, struct posix_msg_tree_node, rb_node);
 130
 131                if (likely(leaf->priority == msg->m_type))
 132                        goto insert_msg;
 133                else if (msg->m_type < leaf->priority)
 134                        p = &(*p)->rb_left;
 135                else
 136                        p = &(*p)->rb_right;
 137        }
 138        if (info->node_cache) {
 139                leaf = info->node_cache;
 140                info->node_cache = NULL;
 141        } else {
 142                leaf = kmalloc(sizeof(*leaf), GFP_ATOMIC);
 143                if (!leaf)
 144                        return -ENOMEM;
 145                INIT_LIST_HEAD(&leaf->msg_list);
 146                info->qsize += sizeof(*leaf);
 147        }
 148        leaf->priority = msg->m_type;
 149        rb_link_node(&leaf->rb_node, parent, p);
 150        rb_insert_color(&leaf->rb_node, &info->msg_tree);
 151insert_msg:
 152        info->attr.mq_curmsgs++;
 153        info->qsize += msg->m_ts;
 154        list_add_tail(&msg->m_list, &leaf->msg_list);
 155        return 0;
 156}
 157
 158static inline struct msg_msg *msg_get(struct mqueue_inode_info *info)
 159{
 160        struct rb_node **p, *parent = NULL;
 161        struct posix_msg_tree_node *leaf;
 162        struct msg_msg *msg;
 163
 164try_again:
 165        p = &info->msg_tree.rb_node;
 166        while (*p) {
 167                parent = *p;
 168                /*
 169                 * During insert, low priorities go to the left and high to the
 170                 * right.  On receive, we want the highest priorities first, so
 171                 * walk all the way to the right.
 172                 */
 173                p = &(*p)->rb_right;
 174        }
 175        if (!parent) {
 176                if (info->attr.mq_curmsgs) {
 177                        pr_warn_once("Inconsistency in POSIX message queue, "
 178                                     "no tree element, but supposedly messages "
 179                                     "should exist!\n");
 180                        info->attr.mq_curmsgs = 0;
 181                }
 182                return NULL;
 183        }
 184        leaf = rb_entry(parent, struct posix_msg_tree_node, rb_node);
 185        if (unlikely(list_empty(&leaf->msg_list))) {
 186                pr_warn_once("Inconsistency in POSIX message queue, "
 187                             "empty leaf node but we haven't implemented "
 188                             "lazy leaf delete!\n");
 189                rb_erase(&leaf->rb_node, &info->msg_tree);
 190                if (info->node_cache) {
 191                        info->qsize -= sizeof(*leaf);
 192                        kfree(leaf);
 193                } else {
 194                        info->node_cache = leaf;
 195                }
 196                goto try_again;
 197        } else {
 198                msg = list_first_entry(&leaf->msg_list,
 199                                       struct msg_msg, m_list);
 200                list_del(&msg->m_list);
 201                if (list_empty(&leaf->msg_list)) {
 202                        rb_erase(&leaf->rb_node, &info->msg_tree);
 203                        if (info->node_cache) {
 204                                info->qsize -= sizeof(*leaf);
 205                                kfree(leaf);
 206                        } else {
 207                                info->node_cache = leaf;
 208                        }
 209                }
 210        }
 211        info->attr.mq_curmsgs--;
 212        info->qsize -= msg->m_ts;
 213        return msg;
 214}
 215
 216static struct inode *mqueue_get_inode(struct super_block *sb,
 217                struct ipc_namespace *ipc_ns, umode_t mode,
 218                struct mq_attr *attr)
 219{
 220        struct user_struct *u = current_user();
 221        struct inode *inode;
 222        int ret = -ENOMEM;
 223
 224        inode = new_inode(sb);
 225        if (!inode)
 226                goto err;
 227
 228        inode->i_ino = get_next_ino();
 229        inode->i_mode = mode;
 230        inode->i_uid = current_fsuid();
 231        inode->i_gid = current_fsgid();
 232        inode->i_mtime = inode->i_ctime = inode->i_atime = CURRENT_TIME;
 233
 234        if (S_ISREG(mode)) {
 235                struct mqueue_inode_info *info;
 236                unsigned long mq_bytes, mq_treesize;
 237
 238                inode->i_fop = &mqueue_file_operations;
 239                inode->i_size = FILENT_SIZE;
 240                /* mqueue specific info */
 241                info = MQUEUE_I(inode);
 242                spin_lock_init(&info->lock);
 243                init_waitqueue_head(&info->wait_q;);
inf949 sref">mqueue_file_operation24                 a href="+code=aNIT_LIST_HEAD" class="sref">INIT_LIST_HEAD(&info->e_wait_q[20]mist);
 125                INIT_LIST_HEAD(&info->e_wait_q[21]mist);
 126                info->notify_owner;= NULL;
 124                info->notify_user_ns;= NULL;
 124                info->qsize - 0;
 124                info->user;= NULL;
     /* siet whenall tis ok*/
 125                info->msg_tree)= mRB_ROOT/a>;
 125                info >node_cache = NULL;
 125                msemst"/a>(&info->attr), 0,sizeof(*a href="+code=lnfo" class="sref">info->attr));
 125                info->attr.ms_cmaxsg"/a> = tmn;*a href="+code=lnc_ns" class="sref">ipc_ns,>ms_cmg_tmax/a>,
 125                                <          ipc_ns,>msqmsg_tdefaul"/a>);
 125                info->attr.mq_tmsgize"/a> = tmn;*a href="+code=lnc_ns" class="sref">ipc_ns,>ms_cmg_ize"tmax/a>,
 125                        }        <          ipc_ns,>msqmsg_ize"tdefaul"/a>);
 125                attr)){
 125                        }a href="+code=inio" class="sref">info->attr.ms_cmaxsg"/a> = attr.>ms_cmaxsg"/a> 
 125                         a href="+code=Inio" class="sref">info->attr.mq_tmsgize"/a> = attr.>mq_tmsgize"/a> 
 126                <
 126                /*
 126                 */ We serdto tlloc
 126 *               */ he rize" of thatsarray as wel tas one sg_msg
 126 *               */ possibl messagesint  the rueue spze". That#39;ts nolong r
 125 span class="comment"> *               */ accurte masthe rueue sis nowand rbree end hwil tgrowandd/apan>
 126 span class="comment"> *               */ shrink dependng ion segesipttrerns.  We can, however stril /apan>
 127 span class="comment"> *               */ accout< one sg_msg
 128 span class="comment"> *               */ aloc
 129                 * Donl< see one, orma hnd ful, of piorities .  However stice
 120                 * rthis is pined lsemory we wnerdto tlssume wort pcase so
 121                 * wthatsmeansthe rmn<(s_cmaxsg", max_piorities )*/ sruct
 122                 */ osix_msg_tree_node<
 127 *               */
 127                 a href="+code=aq_treesize" class="sref">mq_treesize;= info->attr.ms_cmaxsg"/a> =*sizeof(*truct msg_msg,) + 127                <        a href="+code=aqint" class="sref">uqint"/a>;*nsigned lit, ba href="+code=info" class="sref">info->attr.ms_cmaxsg"/a>  ba href="+code=iMQ_PRIO_MAX class="sref">MQU_PRIO_MAX/a>,) * 126                iiiiiiiiiizeof(*truct posix_msg_tree_node,;
 127
 128                 a href="+code=mq_bytes" class="sref">mq_bytes,= mq_treesize;=+(info->attr.ms_cmaxsg"/a> =* 129                                     <     a href="+code=mnio" class="sref">info->attr.mq_tmsgize"/a> ;
 128
 121                }a href="+code=spin_lock_ class="sref">spin_lock_/a>(&sq_tock_/a> ;
 122                rf (us/a>.>mq_bytes,=+ a href="+code=mq_bytes" class="sref">mq_bytes,=lt; us/a>.>mq_bytes,=|| 128                     a href="+code=un class="sref">us/a>.>mq_bytes,=+ a href="+code=mq_bytes" class="sref">mq_bytes,=lg; srlimt"/a>;*a href="+code=lRLIMIT_MSGUEUE_ class="sref">mRLIMIT_MSGUEUE_/a>));{
 128                         a href="+code=spin_lunock_ class="sref">spin_lunock_/a>(&sq_tock_/a> ;
 128                <        apan class="comment">/* mqueue _evic_inode<() releasesinfo >
 126                <        a href="+code=set" class="sref">ret = -rNMILEN/a> 
 127                         oto mou_inode"/a> 
 128                 
 129                us/a>.>mq_bytes,=+ mq_bytes,
 120                ia href="+code=spin_lunock_ class="sref">spin_lunock_/a>(&sq_tock_/a> ;
 121  122                 apan class="comment">/* mll tis ok*/
 123                }a href="+code=inoo" class="sref">info->user;= cet_nid"/a>;*a href="+code=ln class="sref">us/a>.;
 124         }else if (u_ISRDIR/a>;*a href="+code=lode" class="sref">mode)) {
 125                }a href="+code=inoc_line_ class="sref">snoc_line_/a>;*a href="+code=lnode" class="sref">inode);
 126                gapan class="comment">/* mSomerthings misbeavenif (ize" == 0ion a directory*/
 129                inode)>i_size = <2 *FDIRNT_SIZE"/a>,
 128                inode)>i_fp = &mqueue_fdirinode_iperations"/a>,
 129                 a href="+code=mnfde" class="sref">inode)>i_fop = &msmplemfdiriperations"/a>,
 230        }
 230  232         eturn inode;
 233 a href="+code=eou_inode" class="sref">mou_inode"/a> 
 230        rnpu"/a>;*a href="+code=lnode" class="sref">inode);
 235 a href="+code=lrr" class="sref">err;
 236         eturn uERR_PTR/a>;*a href="+code=let" class="sref">ret ;
 237 
 238  239 tatic snt mqueue_filel_uper_/a>;*truct super_block *sb,
 void*sdata/a>,
 nt psilnt"/a> ; 230 
 231        struct inode *inode;
 232        ipc_namespace *no,= sdata/a>,
 231
 231        sb,>isblock,= FPAGE_CACHESIZE"/a>,
 231        sb,>msblock,= mPAGE_CACHESIHIFT/a>,
 2316/a>        sb,>msbmagic/a>,= MQUEUE_IMAGIC/a>,
 237         a href="+code=pb" class="sref">sb,>isfp = &mqueue_fuper_bop"/a>,
 231  231        inode-= mqueue_get_inode(sa href="+code=sb" class="sref">sb,
 a href="+code=is" class="sref">no,
 a href="+code=iS_IFDIR class="sref">u_ISFDIR/a>; | a href="+code=iS_ISVTX class="sref">MS_ISVTX/a>; | a href="+code=iS_IRWXUGO class="sref">MS_IRWXUGO/a>,
 a href="+code=iULL" class="sref">NULL;;
 230        sf (NIS_ERR/a>;*a href="+code=lnode" class="sref">inode);; 232                }eturn NPTR_ERR/a>;*a href="+code=lnode" class="sref">inode);
 232  2323/a>         a href="+code=pb" class="sref">sb,>psbroo"/a>,= pdbmakebroo"/a>;*a href="+code=lnode" class="sref">inode);
 232        if (<sb,>psbroo"/a>,; 232                }eturn <ENOMEM;
 232         eturn <;
 232 
 232  232 tatic struct ldntry(*mqueue_gmout;*truct iile_osystem_typ"/a>(*iis_typ"/a>(
 233                        < nt mflas"/a>,
 onsit char*ldnvnames/a>(
 233                        < void*sdata/a>,; 232 
 2333/a>        if (<<*a href="+code=lflas" class="sref">mflas"/a>,&<mQS_KERNMOUNT/a>);; 233                 a href="+code=adata class="sref">sdata/a>,= surrent_/a>,>lnsprox"/a>)>ipc_ns,
 235         eturn isout;*a href="+code=lfs_typ" class="sref">iis_typ"/a>(
mflas"/a>,
 a href="+code=sdata class="sref">sdata/a>,
 a href="+code=rqueue_filel_uper_ class="sref">mqueue_filel_uper_/a>;;
 236 
 237
 238 tatic svoid*a href="+code=lnoitonce" class="sref">pnoitonce"/a>;*void*ifo"/a>,; 233{
 234        struct mqueue_inode_info *i = &*truct mqueue_inode_info *<)ifo"/a>,
 234  232         a href="+code=lnode"_noitonce" class="sref">pnode"_noitonce"/a>;*amp;i >ivis_node"/a>;;
 233 
inf349 sref">mqueue_file_ope3ation34  135 tatic struct inode *mqueue_galoc;*truct super_block *sb,; 136 
 134         truct mqueue_inode_info *eri/a>,
 134  134        eri/a>,= ekmem_ache;*a href="+code=lqueue_inode_iache<" class="sref">iqueue_inode_iache<"/a>,
 a href="+code=rGFP_KERNE" class="sref">NGFP_KERNE"/a>;;
 135        sf (<eri/a>,; 135                NULL;
 135         eturn eri/a>,>ivis_node"/a>;
 135 
 135  135 tatic svoid*a href="+code=lqueue_iniacllbak_ class="sref">sq_eue_iniacllbak_/a>;*truct ircuhead"/a> *iead"/a> ; 135 
 135         truct inode *inode;= luontane"r_o"/a>;*a href="+code=lead" class="sref">iead"/a> , truct inode  ba href="+code=in_rcu class="sref">in_rcu/a>;;
 135        kfmem_ache;*a href="+code=lqueue_inode_iache<" class="sref">iqueue_inode_iache<"/a>,
 a href="+code=rQUEUE_I" class="sref">MQUEUE_I(inode);;
 135 
 136
 136 tatic svoid*a href="+code=lqueue_idetruoyinode" class="sref">mqueue_gdetruoyinode"/a>;*truct inode *inode;; 136 
 1363/a>         a href="+code=pacll_rcu class="sref">iacll_rcu/a>;*amp;inode)>in_rcu/a>;
 a href="+code=rqueue_fniacllbak_ class="sref">sq_eue_iniacllbak_/a>;;
 136}
 136
 1366/a> tatic svoid*a href="+code=lqueue_ievic_inode< class="sref">sq_eue_ievic_inode;*truct inode *inode;; 137 
 1368/a>         truct mqueue_inode_info *info;
 1369/a>         truct user_struct *user;
 137        snsigned long mq_bytes, mq_treesize;
 137        struct ipc_namespace *ipc_ns,
 137        msg_msg,*msg;
 137
 137        sclearinode(inode);
 137
 136         f (u_ISRDIR/a>;*a href="+code=lnode" class="sref">inode->i_mode ;; 137                 137  137        ipc_ns,= set_nesgreominode(inode);
 138        info = MQUEUE_I(inode);
 138        spin_lock_/a>(&info->lock);
 132         while (*a href="+code=lqg" class="sref">msg;= msg_mgt"/a>(info-)) ! NULL;; 138                 a href="+code=rfee_nqg" class="sref">mfee_nqg"/a>;*a href="+code=lqg" class="sref">msg;;
 138        kfree"/a>;*a href="+code=lnfo" class="sref">info >node_cache ;
 138         a href="+code=ipin_lunock_ class="sref">spin_lunock_/a>(&info->lock);
 136  137         apan class="comment">/* mTotal amout< of ytes< accout
 138        mq_treesize;= info->attr.ms_cmaxsg"/a> =*sizeof(*truct msg_msg,) + 139                uqint"/a>;*nsigned lit, ba href="+code=info" class="sref">info->attr.ms_cmaxsg"/a>  ba href="+code=iMQ_PRIO_MAX class="sref">MQU_PRIO_MAX/a>,) * 130                iizeof(*truct posix_msg_tree_node,;
 131  139         a href="+code=lq_bytes" class="sref">mq_bytes,= mq_treesize;=+(info->attr.ms_cmaxsg"/a> =* 133                }}}}}}}}}}}}}}}}}}}a href="+code=info" class="sref">info->attr.mq_tmsgize"/a> ;
 139  139         a href="+code=iser" class="sref">user;= info->user;
 139         f (user; {
 139                spin_lock_/a>(&sq_tock_/a> ;
 138                user;>mq_bytes,=- mq_bytes,
 139                 apan class="comment">/*
 240                 * ret_nesgreominode<() ensureswthatsth
 240                 * w(pc_ns<= 
 240                 */ to whichwe wnow holdma ef=erence, ormittis ULL<
 240 *               */ We can#39;tt putmitth
 240 *               */
 240                }f (ipc_ns,; 240                <        a href="+code=snc_ns" class="sref">ipc_ns,>mqumueue.s_cout,&-
 240                spin_lunock_/a>(&sq_tock_/a> ;
 240                cfee_nid"/a>;*a href="+code=lser" class="sref">user; 
 240         
 241        sf (ipc_ns,; 241                }a href="+code=spu_inc_ns" class="sref">ipu_inc_ns"/a>;*a href="+code=lnc_ns" class="sref">ipc_ns,;
 242 
 241
 241 tatic snt sq_eue_icreat;*truct inode *udi"/a>  btruct ldntry(*ldntry(
 241                }               }a href="+code=suodeuuode  a href="+code=rqde< class="sref">sqoe  ba href="+code=ibool class="sref">sbool/a>  a href="+code=rexcl class="sref">sexcl/a>,; 241 
 241         truct inode *inode;
 2418/a>         truct aqu_ttr"/a> *attr.= ldntry(>sdgrsdata/a>;
 241        err;
 242        struct ipc_namespace *ipc_ns,
 242  242         a href="+code=lpin_lock_ class="sref">spin_lock_/a>(&sq_tock_/a> ;
 2423/a>         a href="+code=pnc_ns" class="sref">ipc_ns,= s__et_nesgreominode;*a href="+code=ldi" class="sref">udi"/a> ;
 242        if (<ipc_ns,;{
 242                }a href="+code=rerro" class="sref">err;= -eNACCES/a>,
 242                sou_iunock_/a>,
 242         
 2428/a>        if (ipc_ns,>mqumueue.s_cout,=lg;  MHARD_UEUE_SMAX/a>,=|| 242             ipc_ns,>mqumueue.s_cout,=lg;  ipc_ns,>ms_cueue.s_max/a>,=lmp; 243              scapabl;*a href="+code=lCAP_SYS_RESOURCE class="sref">sCAP_SYS_RESOURCE/a>,;) {
 243                 a href="+code=rerro" class="sref">err;= -MNNOSPC/a>,
 243                 oto sou_iunock_/a>,
 2433/a>        i
 243        ipc_ns,>mqumueue.s_cout,++
 243         a href="+code=ipin_lunock_ class="sref">spin_lunock_/a>(&sq_tock_/a> ;
 243  243         a href="+code=pnode" class="sref">inode-= mqueue_get_inode(sa href="+code=sdi" class="sref">udi"/a> >s_si"/a>  ba href="+code=inc_ns" class="sref">ipc_ns, sqoe  ba href="+code=ittr" class="sref">attr.;
 2438/a>        if (NIS_ERR/a>;*a href="+code=lnode" class="sref">inode);;{
 243                err;= -a href="+code=rPTR_ERR class="sref">NPTR_ERR/a>;*a href="+code=lnode" class="sref">inode);
 244                ia href="+code=spin_lock_ class="sref">spin_lock_/a>(&sq_tock_/a> ;
 244                 a href="+code=rnc_ns" class="sref">ipc_ns,>mqumueue.s_cout,&-
 244                 oto sou_iunock_/a>,
 2443/a>        i
inf449 sref">mqueue_file_ope4ation44  144         a href="+code=ipu_inc_ns" class="sref">ipu_inc_ns"/a>;*a href="+code=lnc_ns" class="sref">ipc_ns,;
 1446/a>        udi"/a> >i_size =+ FDIRNT_SIZE"/a>,
 144         a href="+code=pdi" class="sref">udi"/a> >l_scties/a>.= udi"/a> >l_smties/a>.= udi"/a> >l_saties/a>.= sCURRNT_STIME/a>,
 144  144        sdinostantiat(sa href="+code=sdntry" class="sref">ldntry(
 a href="+code=pnode" class="sref">inode-;
 145        mdgt"/a>(ldntry(;
 145         eturn <;
 145 a href="+code=eou_iunock_ class="sref">sou_iunock_/a>,
 1453/a>         a href="+code=pbin_lunock_ class="sref">spin_lunock_/a>(&sq_tock_/a> ;
 145        if (ipc_ns,; 145                }a href="+code=rpu_inc_ns" class="sref">ipu_inc_ns"/a>;*a href="+code=lnc_ns" class="sref">ipc_ns,;
 145         eturn err;
 145 
 145  145 tatic snt squeue_fuline_/a>;*truct inode *udi"/a>  btruct ldntry(*ldntry(; 146 
 146        struct inode *inode;= ldntry(>id_node"/a>;
 146  1463/a>         a href="+code=pdi" class="sref">udi"/a> >l_scties/a>.= udi"/a> >l_smties/a>.= udi"/a> >l_saties/a>.= sCURRNT_STIME/a>,
 146        udi"/a> >i_size =- FDIRNT_SIZE"/a>,
 146         a href="+code=idrop_line_ class="sref">sdrop_line_/a>;*a href="+code=lnode" class="sref">inode);
 1466/a>        rdpu"/a>;*a href="+code=ldntry" class="sref">ldntry(;
 146         eturn <;
 1468/a> 
 1469/a>  147 *
 147 *       Thistis rou_ne"lfortsystem etad reom ueue.*ile_
 147 *       To avoid*mess with doingth
 147 *       to etad only ueue.*ize" amp;<
 147 *       thatsare nt 
 147
span class="comment"> *       throughstrd rou_ne"s)/apan>
 146 span class="comment"> *
 147 tatic sa href="+code=pbize"_" class="sref">psize"_"/a>  a href="+code=rqueue_fetadfile" class="sref">mqueue_getadfile"/a>;*truct mile"/a>;*ifil"/a>  bchar*a href="+code=s__ser" class="sref">u__ser"/a>;*su_data/a>   147                <               }a href="+code=rize"_" class="sref">psze"_"/a>  a href="+code=rcout< class="sref">mcout,
 a href="+code=ploff_" class="sref">ploff_"/a>;*soff/a>(; 147{
 148        struct mqueue_inode_info *info = MQUEUE_I(ifil"/a> >if_path/a> ldntry(>id_node"/a>;;
 148        ubuffr"/a> [a href="+code=sFILNT_SIZE" class="sref">FFILNT_SIZE"/a> ]
 148         a href="+code=lpize"_" class="sref">psize"_"/a>  a href="+code=ret" class="sref">ret 
 148
 148        spin_lock_/a>(&info->lock);
 148         a href="+code=ipnpritspnprit(ubuffr"/a> ,iizeof(*a href="+code=ibuffr" class="sref">ubuffr"/a> )  148                <        apan class="ctruing">"QIZE":#397;-10lu NOTIFY:#397;-5d SIGNO:#397;-5d NOTIFY_PID:#397;-6d\n"/span>
  148                <        a href="+code=info" class="sref">info->iqize   148                <        a href="+code=info" class="sref">info->unotify_ownr"/a>  ? a href="+code=info" class="sref">info->unotify/a> usignvnaotify/a>  : 0  149                <<<<<<<<<*a href="+code=lnfo" class="sref">info >unotify_ownr"/a>  lmp; 140                i<        a href="+code=info" class="sref">info->unotify/a> usignvnaotify/a>  = NSIGEV_SIGNA"/a> ) ? 149                        <        a href="+code=info" class="sref">info->unotify/a> isignvnigne"/a>  : 0  149                         a href="+code=ipid_vn" class="sref">upid_vn"/a>;*a href="+code=lnoo" class="sref">info >unotify_ownr"/a> ;;
 1493/a>         a href="+code=pbin_lunock_ class="sref">spin_lunock_/a>(&info->lock);
 149        ubuffr"/a> [izeof(*a href="+code=ibuffr" class="sref">ubuffr"/a> )-1]= &39;t\0&39;t/span>

 149
 1496/a>        ret = usimpl_getadfieomibuffr"/a>;*a href="+code=lu_data class="sref">su_data/a>   a href="+code=rcout< class="sref">mcout,
 a href="+code=poff class="sref">soff/a>( ba href="+code=ibuffr" class="sref">ubuffr"/a> , 149                <                a href="+code=itrulen class="sref">usrulen/a>(ubuffr"/a> ;;
 1498/a>        if (ret =&l;  <0; 149                 eturn ret 
 250
 250        ifil"/a> >if_path/a> ldntry(>id_node"/a>;>l_saties/a>.= ifil"/a> >if_path/a> ldntry(>id_node"/a>;>l_scties/a>.= sCURRNT_STIME/a>,
 250         eturn ret 
 250 
 250  250 tatic snt mqueue_gflushfile"/a>;*truct mile"/a>;*ifil"/a>  ba href="+code=sfl_ownr"_" class="sref">pfl_ownr"_"/a>  a href="+code=rd" class="sref">ci"/a> ; 250 
 250         truct mqueue_inode_info *info = MQUEUE_I(ifil"/a> >if_path/a> ldntry(>id_node"/a>;;
 250  250        spin_lock_/a>(&info->lock);
 251        sf (ctask_tgd"/a>(surrent_/a>,) = info >unotify_ownr"/a> ; 251                }a href="+code=sremove_notifictions class="sref">retmove_notifictions/a>;*a href="+code=lnoo" class="sref">info ;
 251  2513/a>         a href="+code=pbin_lunock_ class="sref">spin_lunock_/a>(&info->lock);
 251         251 
 251  251 tatic snsigned lit,mqueue_gpollfile"/a>;*truct mile"/a>;*ifil"/a>  btruct uosllftabl;*uosllftab/a> ; 2518/a> 
 251        mqueue_inode_info *info = MQUEUE_I(ifil"/a> >if_path/a> ldntry(>id_node"/a>;;
 252        sit,setuval/a> = <;
 252  252         a href="+code=losllfwai" class="sref">uosllfwai"/a>(ifil"/a> ,info->iwai"_q/a>  ba href="+code=sosllftab class="sref">uosllftab/a> ;
 252
 252        spin_lock_/a>(&info->lock);
 252         f (info->attr.mqucurrmsgi/a> ; 252                setuval/a> = sPOLLIN/a> =|sPOLLRDNORM/a> 
 252  2528/a>        if (info->attr.mqucurrmsgi/a> =&l; }a href="+code=info" class="sref">info->attr.ms_cmaxsg"/a> ; 252                setuval/a> =| sPOLLOUT/a> =|sPOLLWRNORM/a> 
 253        spin_lunock_/a>(&info->lock);
 253  253         eturn setuval/a> 
 253 
 253  253
span class="comment"> /* Adds urrent_ to nfo<>
 2536/a> tatic svoid*a href="+code=lwq_ad" class="sref">cwq_ad"/a>;*truct mqueue_inode_info *info ,sit,us"/a> , 253                <        truct uext_wai"_qeue./a> *iew"/a> ; 2538/a> 
 253        uext_wai"_qeue./a> *lwal"/a> 
 254
 254        iew"/a> >ctask/a> = surrent_/a>,
 254  2543/a>         a href="+code=plist_for_each_ntry" class="sref">llist_for_each_ntry"/a>(lwal"/a> ,info->ie_wai"_q/a> [a href="+code=ss" class="sref">us"/a> ]llist/a>  ba href="+code=slist class="sref">llist/a> ;{
inf549 sref">mqueue_file_ope5ation544/a>                lwal"/a> >ctask/a> >usatic _prio/a> =&l;  surrent_/a>,>usatic _prio/a> ;{
 154                        slist_ad"_tail/a>(&iew"/a> >llist/a>  bamp;lwal"/a> >llist/a> ;
 154                <        eturn 
 154                <
 1548/a>        i
 154        slist_ad"_tail/a>(&iew"/a> >llist/a>  bamp;info->ie_wai"_q/a> [a href="+code=ss" class="sref">us"/a> ]llist/a> ;
 155 
 155  155 *
 155 ** Puts urrent_ task to sleep. Callr< must holdmueue.*ock<. Aftr< eturn /span>
inf54" class="line" name="L154"> 155 ***ock< isn#39;tt held
 155
span class="comment"> =*sir: SEND ormRECV/span>
 155 span class="comment"> */
 155 tatic sit,cwq_sleep/a>;*truct mqueue_inode_info *info ,sit,us"/a> , 155                <    a href="+code=ukties_" class="sref">pkties_"/a> *rtiesou"/a>  btruct uext_wai"_qeue./a> *iew"/a> ; 155{
 156        sit,setuval/a> 
 156        stgned llonglties/a>.
 156  1563/a>         a href="+code=pwq_ad" class="sref">cwq_ad"/a>;*a href="+code=inoo" class="sref">info ,sa href="+code=us" class="sref">us"/a> ,iew"/a> ;
 156  156         fort(;;;{
 156                lset_urrent__tatis/a>;*a href="+code=iTASK_INTERRUPTIBLE class="sref">sTASK_INTERRUPTIBLE/a> ;
 156  156                spin_lunock_/a>(&info->lock);
 156                lties/a>.= spchedule_hrtiesou"_range_cock_/a>;*a href="+code=itiesou" class="sref">rtiesou"/a>  b0  157                i<       a href="+code=iHRTIMER_MODE_ABS class="sref">eHRTIMER_MODE_ABS/a> ,sCLOCK_REALTIME/a>);
 157  157                 while(iew"/a> >lsatis/a>; = lSTATE_PENDING/a> ; 1573/a>                i<       a href="+code=icpu_relax class="sref">mcpu_relax/a>;*;
 157  157                }f (iew"/a> >lsatis/a>; = lSTATE_READY/a> ;{
 157                <        a href="+code=setuval class="sref">setuval/a> = <;
 157                <        oto sou"/a> 
 157                <
 157                spin_lock_/a>(&info->lock);
 158                if (iew"/a> >lsatis/a>; = lSTATE_READY/a> ;{
 158                        setuval/a> = <;
 158                         oto sou_iunock_/a>,
 1583/a>                i
 1584/a>                lsgneal_pending/a>;*a href="+code=iurrent_ class="sref">surrent_/a>,);{
 158                        setuval/a> = <eNRESTARTSYS/a>,
 158                <        break
 158                <
 158                lties/a>.=  <0;{
 159                <<<<<<<<setuval/a> = <sNTIMEDOUT/a>,
 150                i<       break
 159                 
 159         
 1593/a>         a href="+code=plist_del class="sref">slist_del/a>(&iew"/a> >llist/a> ;
 159 a href="+code=eou_iunock_ class="sref">sou_iunock_/a>,
 159         a href="+code=ipin_lunock_ class="sref">spin_lunock_/a>(&info->lock);
 1596/a> a href="+code=eou_ class="sref">sou"/a> 
 159         eturn setuval/a> 
 1598/a> 
 1599/a>  260 *
 260  * Rturn s wai"ingttask thatsshould be serviced first ormNULL
 260 */
 260 tatic struct uext_wai"_qeue./a> *uwqget_ifirst_wai"r"/a>(& 2604/a>                mqueue_inode_info *info ,sit,us"/a> ; 260 
 260         truct clist_hea"/a> *apt;
 260  2608/a>         a href="+code=ipr" class="sref">apt;= info->ie_wai"_q/a> [a href="+code=ss" class="sref">us"/a> ]llist/a> aprev/a>;
 260        apt;= =bamp;info->ie_wai"_q/a> [a href="+code=ss" class="sref">us"/a> ]llist/a> ; 261                ieturn lNULL/a>;
 261         eturn llist_ntry"/a>(apt; btruct uext_wai"_qeue./a>  ba href="+code=slist class="sref">llist/a> ;
 261 
 261
 261  261 tatic sa href="+code=lnfine" nlass="sref">infine"/a>  void*a href="+code=lset_uookis class="sref">lset_uookis/a>(lskibuff/a> *uskb/a>  bchar*a href="+code=sode= class="sref">suoe"/a>;; 261 
 261         ((char*)a href="+code=iskb class="sref">uskb/a> >sdata/a> )[a href="+code=sNOTIFY_COOKIE_LEN class="sref">sNOTIFY_COOKIE_LEN/a> &1]= suoe"/a>;
 2618/a> 
 2619/a>  262 *
 262  * The next funcions nsronly to spli_ toollong
 262 */
 262 tatic svoid*a href="+code=l__donaotify class="sref">u__donaotify/a>(mqueue_inode_info *info ; 262 
 262         span class="comment"> /* notifictions/apan>
 262 span class="comment"> **********sitvoked when th
 262 span class="comment"> **********swai"ingtsynchronously fortmessage AND satis of ueue.*changed reom/apan>
 2628/a> span class="comment"> **********sempty to notsempty. H
 262 span class="comment"> **********ssynchronously.*/
 263        sf (info >unotify_ownr"/a>  lmp; 263             a href="+code=mnfo" class="sref">info >attr.mqucurrmsgi/a> = =b1;{
 263                 truct isignfo"/a>  a href="+code=msig_i class="sref">isig_i/a>;
 2633/a>                iswitch(info >unotify/a>.usignvnaotify/a> ;{
 2634/a>                sSIGEV_NONE/a> 
sSIGEV252mqucurrmsgi/a> = e" name="L252an class="comment"> **********swai"ingts id="L246" class="line" name="L146"> 1496/ef="ipc/mqueue.c#L255" id="8 href="+code=msignfo" class="sref">isignfo"/a>  a href="+code=msig_pc/mqueue.c#L262d"/a>;*truct iew"/a> ; **********sipc/ms e="L15">info >(&6wal"/63UT/a>,
 251                class="line" name="L264"> 2634/a>                         a href="+code=ipid_vn" cgnfo"/a>  a href="+code=ms 6ew"/a64E class="sref">sCLOCK_REALTIME/a>);
sou_iunoc6="sref">c6ask/a> =  158                    a href="+code=ms "+code=ms+code=plist_for_each_ntr6" cla64a href="+code=nodtify_ownr" class="sref">uno 251                class="line" name="L264"> 2634/a>              t   a href="+code=ms +code=nod"+code=iwal" class="sref6>lwal64ss="line" name="L154"> 157="comment"> **********simapme="L154"pid/ui href56"> 2536/alass=swai"sss="s="cync">info >ctask/a> >6unorcucode=p="sref">sou"/a> 
 261
(&am6;iew"/a> >eHRTIMER6ne" name=6L157"> 154          6     6
 > 1493/a>         a href="+code=pbin_lunock_ class="sref">spin_lunock_/a>(& 1548/a6        i
 1493/a>         a href/a> _n truct (&  ? a href="+code=info" class="sref"rcucode=pk);
 261
iew"/a6 >64ue.c#L161" id="L261" class="lief="ipc/m6ueue.c#L252" id="L152" c6ass="65E class="sref">sCLOCK_REALTIME/a>);
 1493/a>         a hreclass="line" name="L264"> 2634/a>                         a href="+code=ipid_vn" cABS class="sref">eHRTIMER6lass="com6ent"> *
us"/a> ] 1493/a>         a href="+code=pbin_lunock_ class="sref">spiname="L263"> 261
 155isignfo"/a>  a href="+code=msk<. Aftr<6eturn /span>
 1565="+code=ltatic _prio _ownr" class="sref">unoef">uskb/a>  bchar*a href="+code=sode= c"ipc/mqueue.c#LL143" class="line" name="L143"> 1493/a>         a hrefuskb/a>  bchar*a href a hrefuskb/as="sf="ipc/mqueue.c#L="L268"WOKENUPass="line" name="L268"WOKENUP">spiname="L263"> 261
(&am6ass="line" name="L156"> 655iew"/a> > &netnamk_pc/msY_de= c"ipc/mqueue.c#LL143" class="line" name="L143"> 1493/a>         a hrefsa>);
 1493/a>         a hrefuskb/a>  bchar*a href a hrefuskb/as="siname="L263"> 261
 155 tatic si6,mqu65de=mties class="sref">lties/a>.=  <0;{
rtieso6"/a> 6btruct  **********sia9;tt tvoked when  unspan clas="comment>info >loput p > 1493/a>         a href="+code=pbin_lunock_ class="sref">spi8" class="line" name="L156.c#L251" 6d="L151" class="line" na6e="L166E class="sref">sCLOCKclass="sref">loput /a> _n truct  1493/a>         a href/a> _n truct info ;
 263             a href="+code=mnfo" class="srefue.c#L250" id="L2ode=slist_ntry" class="sref">llist_ntry"/a>(cwq66a href="+code=nodtifye=slist class="L143" class="line" name="L143"> 1493/a>         a href/a> _n truct llist_ntry"/a>(us">lties/a>.=  <0;{
lowake_u class="sref">infake_u "+codlass="sref">uosllftab/a> ;
 252i8" class="line" name="L156.l/a>(&am6>                 251 tatic6is/a>;*a 6ref="+code=iTASK_INTERRU6TIBLE66le" class="sref">mqueue_gpoll6         6a href="+code=mbin_lunoc6_ cla66e_inode_info * o" class="sref">i/a> href="ipc/mqueue.c#L2u_abs_<       a href="+code=u_abs_<      n" cABS class="sref">eHRTIMER6a href="+6ode=lnfo" class="sref">i6fouext_wai"_qeue./a> *setuval/a> =  
 "+code=slist class="c truct sf="ipc/mqueue.c#Lu_abs_<       a href="+code=u_abs_<      n" cA 41" id=60" id="L263" class="l<   spectruct info ;
llist_ntry"/a>(lsatis/a>;6= s)etuval/a> = llist_ntry"/a>(iew"/a> >lsatis/a>; = 6a hre6="+code=MSTATEref="+code=iew" expire truct se">llist_ntry"/a>( 251  251 tatic6"> 157(&info<6a>-&g6; * 251  262 
 262      =ltatis c6ass="sref">lsatis/a>; = 6a hre6="+codal/a> 
 263             a href="+code=mnfo" class="sref!ue.c#L250" id="L2ode=slist_ntry" class="sreff">info >,
 1493/a>         a hreclass="line" name="L264"> 2634/a>                sSIGEV_NONE/a> 
 1584/a6                unoef">uskb/a>  bchar*a href="+code=sode= c"ipc/mqueue.c#LL143" class="line" name="L143"> 1493/a>         a hrefuskb/a>  bchar*a href a hrefuskb/as="sf="ipc/mqueue.c#L="L268"REMOVEl    <        a ="L268"REMOVElf">se">llist_ntry"/a>(,);{
 1493/a>         a hrefsa>);
 1493/a>         a hrefuskb/a>  bchar*a href a hrefuskb/as="siname="L263"> 261
eNRE6TARTSYS/a>,
 251 tatic6e" name="6157"> 158           6    <6loput p > 1493/a>         a href="+code=pbin_lunock_ class="sref">spi8" class="line" name="L156"> 158loput /a> _n truct  1493/a>         a href/a> _n truct ie_wai"_q/a> 60" id="L261" class="line" name="L261"> 263             a href="+code=mnfo" class="srefue.c#L250" id="L2ode=slist_ntry" class="sref">llist_ntry"/a>(6NTIME6OUT/a>,
 1493/a>         a href/a> _n truct llist_ntry"/a>( 159           6     69ne" name="L152"> 155 159iew"/a> > * 262      lew" clas6="sref">iew"/a> >sSIGEV_NONE/a> 
69urrent_/a>,); *llist_ntry"/a>(info-6gt;;*llist_ntry"/a>( 1596     69le" class="sref">mqueue_gpoll6eue.c#L256" id="L258" class="line"6name=6L158"> 1598/a>ef="ipc/mqueue.c#L22" class="line" name="L262"43"> 1493/a>        sf="ipc/0 |/a>         1493/a>        sf="ipc/0name="L265"> 262      lipc/mque6ueue.c#L260" id="L260" c6ass="69>llist_ntry"/a>( *
ie_wai"capL258o" class="sref"capL258"+code=slist class="CAP_SYS"RESOURCt"> **********swCAP_SYS"RESOURCtf">s)es="sref">sSIGEV_NONE/a> 
<7ne" name=7L261"> 260lSTATE_2" class="line" name="L262"43"> 1493/a>        sf=gsref">ms_cmaxsg"/aHARD_MSGMAX+code=uetuval cHARD_MSGMAXf">sf||"sref">sSIGEV_NONE/a> 
<7n1" name=7L        
  1493/a>        sf=gsref">ms_cmaxsg"/aHARD_MSGSIZEMAX+code=uetuval cHARD_MSGSIZEMAX262"name="L265"> 262     7ine" name7"L163"> 260 tatic st7uct <70a href="+code=nodtify_ownr" cmext_wa                iINV      <        a iINV  sref">llist_ntry"/a>(us"> elses="sref">sSIGEV_NONE/a> 
<7n4href="+7o55" class="line" name="7class7"sref">info ,sit,lSTATE_2" class="line" name="L262"43"> 1493/a>        sf=gsref">ms_cmaxsg"/a6gt_s truct  1493/a>        sf||"sref">sSIGEV_NONE/a> 
<7n5href="+7o class="sref">info-7class70">iew"/a> > 1493/a>        sf=gsref">ms_cmaxsg"/a6gt_s truct  1493/a>         262     7i6href="+7oe" name="L157"> 1597href=70llist_ntry"/a>( 1598/a>ame="L152"> 155inf7-> **********sicheckan cloverflowt>info >info->ie_wai"2" class="line" name="L262"43"> 1493/a>        sf=gsref">ms_cmaxsg"/aULONG_MAX+code=uetuval cULONG_MAXf">s/="sref">lSTATE_2" class="line" name="L262"43"> 1493/a>        sname="L265"> 262     7/mqueue.c7L260" id="L261" class="l7ne" n7me="L261"> 261         et                iOVERFLOW    <        a iOVERFLOWsref">llist_ntry"/a>(apt; b7ruct 71 class="sref">surrent_/a>,
 1493/a>        sf* 41" id=60" id="L263" class="lhsgss="+code=uetuval clsgss="infoss+>llist_ntry"/a>(uext_wai"_qeminre"+cod/a>;* 1493/a>        sf="ipc/mqueue.c#LMQ_PRIO_MAX+code=uetuval cMQ_PRIO_MAXinfoss*>llist_ntry"/a>( hrei8" class="line" name="L157sa href="7code=lnfine" nlass="sref7>infi71"+code=lock" class="sref">lo2otal_41" ;
 1493/a>        sf* ="sref">ie_wai"2" class="line" name="L262"43"> 1493/a>        s8" class="line" name="L157s5href="+7ss="sref">lset_uookis/a>7ie_wai"2otal_41" ;
surrent_/a>,
lo2otal_41" ;
 262     7/6href="+7)a href="+code=iskb clas7="sre71llist_ntry"/a>(sdata/a> )[a href=7+code71158"> 1598/a> 
 251  262 *
 262  * The next funcions nsronly to spli_ toollong
crea"L268a new*****sevian>
 262 tatic sv7id*a 7ref="+code=l__donaotify class="sref">u__donaotify/a>(mqueue_ino60" id="L263" class="lfi58o" class="sref"fi58href="ipc/mqueue.c#L2do_crea"8o" class="sref"do_crea"8ref="ef="ipc/mqueue.c#L262">_s="s="cyn" class="line" ngt_s="s="cynhref="ipc/mqueue.c#L26gt_s truct  hre="ipc/mqueue.c#L2diclass="line" namdics="sf__donaotify/a>( /* notifi7tions72="+code=ltatic _prio _ownr" c60" id="L263" class="lpathtruct sf="ipc/mqueue.c#Lum/a>   a href="+code=um/a>   hre=>surrent_/a>,
truct  2672">iew"/a> > 262     7th

 1598/a>const260" id="L263" class="lcre>
llist_ntry"/a>(unotify_ownr7/a>  7mp;sSIGEV_NONE/a> 
<7 class="s7ef">attr.lo hrgt;llist_ntry"/a>(isig_i7a>;
<7 href="ipc/mqueue.c#L2ef="ipc/mqueue.c#L2 hrgt; 262     7"+code=no7tify class="sref">unotif7/a>.<7 href="+code=msignvnao 1598/a> 
llist_ntry"/a>(sSIGEV257mqucurrmsgi/a> = s="comment"> **********siptorean cluse durL268crea"8s="sref">u__donaotify/a>( 14967ef="ipc/mqueue.c#L255" i7="8 h7ef="+code=msignfo" claipc/mqueue.c#L2pathtruct uext_wai"_qeue./a>dhref="+cohref="+code=sode= cla_fsass="sref">suoe"/a>;_fsass=sreffue.c#L250" id="L22" class="line" name="L262"">llist_ntry"/a>(;*truct  elses="sref">sSIGEV_NONE/a> 
<74 ueue.*c7./a> *iew"/a> ;llist_ntry"/a>((&7wal"/73UT/a>,
 263          href="+code=uetuval class="sref">sf="ipc/mqueue.c#L2miss="line" name="misref="ipc/mqueue.c#L26gt_s truct  1493/a>        sf__donaotify/a>(7ew"/a74E class="sref">sCLOCK_REALTIMMMMMMMMMMMMMMMMMMipc/mqueue.c#L26gt_s truct  1493/a>        uext_wai"_qema hsgsa"faulesrefn">llist_ntry"/a>(c7ask/a> =  15"+code=sode= cla"f_e="L;
 263          hsg41" ;
sf="ipc/mqueue.c#L2miss="line" name="misref="ipc/mqueue.c#L26gt_s truct  1493/a>        ( 1493/a>        uext_wai"_qema hsg41" sa"faulesrefn">llist_ntry"/a>(lo hrgt;uosllftaa"f_e="L;
llist_ntry"/a>(ctask/a> >7 262     7il/a>(&am7;iew"/a> >llist_ntry"/a>( 154          7     7
 262 1548/a7        i
ie_wai"_q/a> m/a>truct iew"/a7 >74UT/a>,
uext_wai"_qeue./a>dhref="+cofaipc/mqueue.c#L2m/a>truct lo2rreid="L269" class2rresrefn">llist_ntry"/a>(uext_wai"_qeue./a>dhref="+cohref="+code=sode= cla_fsass="sref">suoe"/a>;_fsass=sreffue.c#L250" id="L2ode=slist_ntry" class="sref">llist_ntry"/a>( *
 262     7ne" name=7L153"> 155llist_ntry"/a>(
dhref=rope thcode=slist class="sathtruct sf="ipc/mqueue.c#Lcre>llist_ntry"/a>( 1575="+coame="L260"> 262(&am7ass="line" name="L156"> 755iewme="L260"> 262 155 tatic si7,u__donaotify/a>(mqu75e_inode_info60" id="L263" class="lfi58o" class="sref"fi58href="ipc/mqueue.c#L2do_ope t_wai"_qeue./a>dorope thcod60" id="L263" class="lpathtruct sname="L265"> 262     7nne is wa7sou" class="sref">rtieso7"/a> 7btruct="sref">sSIGEV_NONE/a> 
<7  sit, **********swO_ACCMODta href="{="ipc/mqueue.c#LMA8"REal    <        a MA8"REalf">sf="ipc/mqueue.c#LMA8"WRITt"> **********swMA8"WRITt262"f__donaotify/a>(sCLOCKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK"ipc/mqueue.c#LMA8"REal    <        a MA8"REalf">s /a>         **********swMA8"WRITt262" }">llist_ntry"/a>(info ;
ipc/mqueue.c#L2646 acctruct llist_ntry"/a>(cwq76a href="+codeef="de=slist class="ofla"+code=uetuval cofla"f">s=lass=/mqueue.c#L2646 O_ACCMODt"> **********swO_ACCMODta hr)> 15de=slist class="O_RDWR    <        a O_RDWRf">s /a>         262     7 <. Aftr<7info ,sa href="+code7us" c76ss="line" name="L154"mext_wa               iRR_PTR    <        a iRR_PTRref="                iINV      <        a iINV  srefn">llist_ntry"/a>(loacctruct s=lass=/mqueue.c#L2646 O_ACCMODt"> **********swO_ACCMODta hr]">llist_ntry"/a>((&am7>                ie_wai"2 permisslass="line" name="2 permisslasthcode=slist class="sathtruct uext_wai"_qeue./a>dhref="+cohref="+code=sode= cla_itruct  262     7 e" name=7ref="+code=iTASK_INTERRU7TIBLE76llist_ntry"/a>( 1598/a> 
dhref=rope thcode=slist class="sathtruct sf="ipc/mqueue.c#Lc" classcre>llist_ntry"/a>(i7fo 262 o" class="sref">i/a> href="f="ipc/mqueue.c#Lu_=iCLo" class="sref"u_=iCL hre="ipc="mqueue.c#L2646 ofla"+code=uetuval cofla"f">sf="ipc/mqueue.c#Lum/a>   a href="+code=um/a>   hrefaipc/mqueue.c#L2m/a>truct info ;
i/a> href="f="ipc/mqueue.c#Lu_e="L;
 262     7ode=ltati7 class="sref">lsatis/a>;7= sSIGEV_NONE/a> 
<7 <. Aftr<7ipc/mqueue.c#L251" id="L754" c7ass="line" nam60" id="L263" class="lpathtruct llist_ntry"/a>(infi5  hre">llist_ntry"/a>((&am7ass="sref">lsatis/a>; = 7a hre7="+code=MSTATE60" id="L263" class="lfi58=iCLo" class="sref"fi58=iCLhref="ipc/mqueue.c#L2=iCLo" class="sref"=iCLhref">llist_ntry"/a>(llist_ntry"/a>( 1598/a>epc/mqueue.c#L2646 fogt;llist_ntry"/a>(llist_ntry"/a>(info<7a>-&g779ine" name="L60" id="L263" class="lvfsmouasgt; 1493/a>        llist_ntry"/a>(lsatis/a>; = 7a hre780ine" name="L60" id="L263" class="la">uext_wai"_qeue./a>dhref="+co="ipc/mqueue.c#L2roorgt; 1493/a>        llist_ntry"/a>(info ;
ipc/mqueue.c#L2646 r3" class="line" rvn" cgnfo"/a>  a href="+code=m7_/a>,
  a href="+code=m7_<. Aftr<7                ie_wai"u_e="L;
info"ipc/mqueue.c#L26opypoff c/a> o" class="sref"copypoff c/a> "+codlass="sref">uosllfta2" class="line" name="L262"f="ipc/mqueue.c#Lu_e="L;
 = ,);{
llist_ntry"/a>(iewme="L260"> 262 158           7    <7loaudit_ hrope ;
sf="ipc/mqueue.c#Lm/a>truct lou_e="L;
uosllfta2" class="line" name="L262" :e.c#L250" id="L2ode=slist_ntry" class="srefn">llist_ntry"/a>( 158ie_wai"IS_ERR    <        a IS_ERRthcode=slist class="=iCLo" class="sref"=iCLhrefp="ipc/mqueue.c#L2get=iCLo" class="sref"get=iCLthcode=slist class="u_=iCLo" class="sref"u_=iCL hre))etuval/a> = 7NTIME78UT/a>,
llist_ntry"/a>( 159           7     79ne" n>llist_ntry"/a>(surrent_/a>,
d_fd_fla" truct  **********swO_CLOEXEChrefn">llist_ntry"/a>(,
 262     7lew" clas7="sref">iew"/a> >llist_ntry"/a>(79ef">iew"/a> >info-7gt;u__donaotify/a>( 1597     79a href="ipc/mclass="sref">loerroclass="line" namerroc262"lueck_ class="sref">sou_iunoc7eue.c#L257" id="L258" class="line"7name=79de=mties clasclass="sref">lomutexp="sref">sou"/a> 
uosllftaroorgt;truct llist_ntry"/a>(ie_wai"_q/a> pathtruct uext_wai"_qeue./a>dhref="+co=="ipc/mqueue.c#L2lookup_one_le ;
loroorgt;lo60"le ;
llist_ntry"/a>( *
ie_wai"IS_ERR    <        a IS_ERRthcode=slist class="pathtruct uext_wai"_qeue./a>dhref="+co)es="sref">sSIGEV_NONE/a> 
<8ne" name=8L261"> 260loerroclass="line" namerroc262"lueef="ipc/mqueue.PTR_ERR    <        a PTR_ERRthcode=slist class="pathtruct uext_wai"_qeue./a>dhref="+co)">llist_ntry"/a>( llist_ntry"/a>( 260 tatic st8uct <80a href="+codeame="L260"> 262us"e=slist class="pathtruct  262iew"/a> >info-8class805=le_wai"_q class="sref">ie_wai"ofla"+code=uetuval cofla"f">s=lass=/mqueue.c#L2646 O_CREA break
sSIGEV_NONE/a> 
<8n6href="+8oe" name="L157"> 1598href=80ie_wai"pathtruct uext_wai"_qeue./a>dhref="+cohref="+code=sode= cla_itruct info >iew"/a> ;us"e=slist class="audit_itruct uext_wai"_qeue./a>dhref="+co, 0n;me="L260"> 262ie_wai"ofla"+code=uetuval cofla"f">s=lass=/mqueue.c#L2646 O_EXC=slist_ntry" claO_EXC=sref)s="sref">sSIGEV_NONE/a> 
<8n9href="+8ont"> *
,
loerroclass="line" namerroc262"lue                iEXIS break
llist_ntry"/a>( 261                    goto"mqueue.c#L2646 outgt;llist_ntry"/a>(apt; b8ruct 81y/a>  262lofi5 class="sref">infi5  hrep="ipc/mqueue.c#L2do_ope t_wai"_qeue./a>dorope thcodlass="sref">uosllftasathtruct sn;me="L260"> 262 elses="sref">sSIGEV_NONE/a> 
<8sa href="8code=lnfine" nlass="sref8>infi81urrent_/a>,);{
sSIGEV_NONE/a> 
<8s5href="+8ss="sref">lset_uookis/a>8loerroclass="line" namerroc262"lueef="ipc/mqueue.r3" class="line" rvn" cgnfo"/a>  a href="+code=m8/6href="+8)a href="+code=iskb clas8="sre81llist_ntry"/a>(sdata/a> )[a href=8+code81"sref">iew"/a> ;us"ame="L260"> 262lofi5 class="sref">infi5  hrep="ipc/mqueue.c#L2do_crea"8o" class="sref"do_crea"8ref="ipc/mqueue.c#L26gt_s truct loroorgt;truct  262 *
uosllftasathtruct sfaipc/mqueue.c#L2m/a>truct  262sCLOCKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKclass="sref">lou_e="L;
uosllfta2" class="line" name="L262" :e.c#L250" id="L2ode=slist_ntry" class="srefn">llist_ntry"/a>(
 262 262 tatic sv8id*a 82a href="+codea elses="sref">sSIGEV_NONE/a> 
<8href="+co8e=mqueue_inode_info" cla8s="sr82href="+code=msignvnaoef="!"L263" class="lpathtruct uext_wai"_qeue./a>dhref="+cohref="+code=sode= cla_itruct sSIGEV_NONE/a> 
<8ha href="8ass="comment"> /* notifi8tions82="+code=ltatic _prio _ownr" cclass="sref">loerroclass="line" namerroc262"lue                iNOEN break
llist_ntry"/a>( 2682">iew"/a> >llist_ntry"/a>(
 262iew"/a> ;thcode=slist class="=iCLo" class="sref"=iCLhreffaipc/mqueue.c#L2pathtruct uext_wai"_qeue./a>dhref="+co, 0n;me="L260"> 262
lofi5 class="sref">infi5  hrep="ipc/mqueue.c#L2do_ope t_wai"_qeue./a>dorope thcodlass="sref">uosllftasathtruct sn;me="L260"> 262,
 262unotify_ownr8/a>  83ne" n>llist_ntry"/a>(attr.infi5  hre)etuval/a> = isig_i8a>;
<8 href="ipc/mqueue.c#L2>surrent_/a>,
infi5  hre);me="L260"> 262unotif8/a>.<8 href="+code=melseme="L260"> 262sSIGEV258mqucurrmsgi/a> = slass="sref">loerroclass="line" namerroc262"lueef="ipc/mqueue.PTR_ERR    <        a PTR_ERRthcode=slist class="fi5 class="sref">infi5  hre);me="L260"> 262 262;*truct lopath puttruct uosllftasathtruct  262 262ie_wai"erroclass="line" namerroc262")s="sref">sSIGEV_NONE/a> 
<88wal"/83UT/a>,
d_fdtruct  2628ew"/a84E class="sref">sCLOCKe=slist class="fogt;llist_ntry"/a>(c8ask/a> =  262sou"/a> 
uosllftaroorgt;truct llist_ntry"/a>(us"e=slist class="mas_drop_wri"8o" class="sref"mas_drop_wri"8thcode=slist class=" asgt; 262ctask/a> >8 262(&am8;iew"/a> >"+code=sode= clput=iCLo" class="sref"put=iCLsrefde=slist class="=iCLo" class="sref"=iCLhrefn">llist_ntry"/a>( 154          8     8
llist_ntry"/a>( 262(&iew"/a8 >84UT/a>ef="ipc/mqueue.SYSCALL_DEFINE1gt; o" class="sref">i/a> href="f="ipc/mqueue.c#Lu_=iCLo" class="sref"u_=iCL hreetuval/a> = sSIGEV_NONE/a> 
<8lass="com8ent"> *
info ;
ipc/mqueue.c#L2646 errlass="line" namerr hre">llist_ntry"/a>( 155llist_ntry"/a>(
uext_wai"_qeue./a>dhref="+co="ipc/mqueue.c#L2a">uext_wai"_qeue./a>dhref="+co">llist_ntry"/a>( 15854s="line" nam60" id="L263" class="litruct truct llist_ntry"/a>((&am8ass="line" name="L156"> 855llist_ntry"/a>( 155 tatic si8, 1493/a>        llist_ntry"/a>(mqu85= rtieso8"/a> 85q class="sref">ie_wai"_q/a> =iCLo" class="sref"=iCLhrefp="ipc/mqueue.c#L2get=iCLo" class="sref"get=iCLthcode=slist class="u_=iCLo" class="sref"u_=iCL hre)">llist_ntry"/a>(ie_wai"IS_ERR    <        a IS_ERRthcode=slist class="niCLo" class="sref"=iCLhrefin>llist_ntry"/a>(sCLOCK 
llist_ntry"/a>(iew"/a> >cwq86a href="+codeipc/mqueue.c#L2errlass="line" namerr hrep="ipc/mqueue.c#L2mas_waas_wri"8o" class="sref"mas_waas_wri"8thcode=slist class=" asgt;iew"/a> >ie_wai"errlass="line" namerr hren>llist_ntry"/a>(mqucurrmsgi/a> = goto"mqueue.c#L2646 out =iCLo" class="sref"out =iCLhref">llist_ntry"/a>((&am8>                iew"/a> >"+code=sode= clmutexp="sr_neste>uosllftamasgt; 1493/a>        s="shref="+code=sode= cl6_mutextruct iew"/a> >loa">uext_wai"_qeue./a>dhref="+co=="ipc/mqueue.c#L2lookup_one_le ;
lomasgt; 1493/a>        iew"/a> ;us"f="ipc/mclass="sref">lo60"le ;
llist_ntry"/a>(i8foie_wai"IS_ERR    <        a IS_ERRthcode=slist class="a">uext_wai"_qeue./a>dhref="+co)es="sref">sSIGEV_NONE/a> 
<8hedule_hr8iesou"_range_cock_ class8"sref86UT/a>,
uext_wai"_qeue./a>dhref="+co)">llist_ntry"/a>( ,sCLOCKgoto"mqueue.c#L2646 out un="sref">sou"/a> 
llist_ntry"/a>( 262lsatis/a>;8=   a href="+code=m8 <. Aftr<8ipc/mqueue.c#L251" id="L854" c87ss="sref">us"e=slist class="itruct uext_wai"_qeue./a>dhref="+cohref="+code=sode= cla_itruct llist_ntry"/a>( hrees="sref">sSIGEV_NONE/a> 
<8ol/a>(&am8ass="sref">lsatis/a>; = 8a hre8="+code=MSTATEf="ipc/m"+code=sode= clerrlass="line" namerr hrep="                iNOEN break
llist_ntry"/a>( elses="sref">sSIGEV_NONE/a> 
<8"ipc/mque8e.c#L157" id="L258" clas8="lin87"sref">iew"/a> ; hree">llist_ntry"/a>(loerrlass="line" namerr hrep="ipc/mqueue.c#L2vfs_un=in);
uext_wai"_qeue./a>dhref="+cohref="+code=sode= cla_paclasgt;s="sf class="sref">loa">uext_wai"_qeue./a>dhref="+co)">llist_ntry"/a>(info<8a>-&g87UT/a>,
 262lsatis/a>; = 8a hre88E class="srefipc/mqueue.c#L2dputtruct loa">uext_wai"_qeue./a>dhref="+co)">llist_ntry"/a>(iew"/a> >sou"/a> 
 262us"e=slist class="mutexpun="sref">sou"/a> 
uosllftamasgt; 1493/a>        s="shref="+code=sode= cl6_mutextruct llist_ntry"/a>(truct ((&am8ENRESTARTSYS class="sref8>eNRE88"+code=MSTATEf="ipc/m"+code=sode= cliputtruct loitruct llist_ntry"/a>( 158           8    <8lomas_drop_wri"8o" class="sref"mas_drop_wri"8thcode=slist class=" asgt; 262 158 262ie_wai"_q/a> put=iCLo" class="sref"put=iCLsrefde=slist class="=iCLo" class="sref"=iCLhrefn">llist_ntry"/a>(8NTIME88ue.c#L161" id="L261" class="l8e" name="8151"> 159           8     89E class="sref 
llist_ntry"/a>( 262,
  a href="+code=m8lew" clas8="sref">iew"/a> >d send and receive functions.nfo >89ef">icode=l__donaotify class=nfo >info-8gt;it registers>itself2ip t67nfo > 1598     89/mqueue.c#L2617 id="L267" c="Llist of wai/L268receivers. A sender checks t6atLlist beforeaaddL268t67 newnfo >itnfo > *
 260 ue.c#L2617 id="L267" c="Lspin="sr.LT67reforeaan
ipcermedia"8sSTATE_PENDINGdde_ie
and memory barriersnfo >dan clsysv semaphores, se=nfo >iew"/a> > >icode=l__donaotify class=nfo >info-9class90ref="262" class="line" name="LT67 sst_ algori"hmais /a>dan clsenders.nfo > 1599href=90/mqueue.c#L2617 id="L267" c="info >d_send() - send a message
directly co8t67 task wai/L268isreo > *
apt; b9ruct 91y/a> de_infoclass="sref">loiaptuct a clasvoidf">ie_wai"_q/a> pipe"/a>d_sendo" class="sref"pipe"/a>d_sendsrefd60" id="L263" class="lmqode=_i_i_illist_ntry"/a>(sSIGEV_NONE/a> 
<9s5href="+9ss="sref">lset_uookis/a>9iew"/a> >"+code=sode= clreceiverlass="line" namreceiver hre43"> 1493/a>        <="+code=uetuval clsg hrep="ipc/mqueue.c#L2message+code=uetuval clessagehref">llist_ntry"/a>(lolist_delgt;uosllftareceiverlass="line" namreceiver hre43"> 1493/a>        listgt;llist_ntry"/a>(sdata/a> )[a href=9+code91de=mties clasclass="sref">loreceiverlass="line" namreceiver hre43"> 1493/a>        de_ie;
llist_ntry"/a>(ie_wai"_q/a> wake_up_process;
 1493/a>        tas);
llist_ntry"/a>( *
llist_ntry"/a>( 262 1493/a>        de_ie;
llist_ntry"/a>(
 262 262 tatic sv9id*a 92" clanfo"/a>  a href="+code=m9href="+co9e=mqueue_inode_info" cla9s="sr92ss="lme.c#L2617 id="L267" c/* pipe"/a>d_receive() -mef=t67reais task wai/L268isLsys_ hrtimedsend()nfo > /* notifi9tions92ef">icode=l__donaotify class= gets>its message
and put co8t67 code= (we have one free placean clsur=).="info > 2692">iewde_infoclass="sref">loiaptuct a clasvoidf">ie_wai"_q/a> pipe"/a>d_receiveo" class="sref"pipe"/a>d_receivesrefd60" id="L263" class="lmqode=_i_i_illist_ntry"/a>(
sSIGEV_NONE/a> 
<9i7href="+9anged reom/apan>
iew"/a60" id="L263" class="lexs_wait_ claslass="line" namexs_wait_ clashref="ipc/mqueue.c#L2sender;
loillist_ntry"/a>(
sSIGEV_NONE/a> 
<9fy_ownr" 9lass="sref">unotify_ownr9/a>  93E class="sref">sCLOCKee.c#L2617 id="L267" c/* n clpoll="info >attr.ie_wai"_q/a> wake_up_ipcerruptib58o" class="sref"wake_up_ipcerruptib58thcodlass="sref">uosllftai 1493/a>        wait_ o" class="sref"wait_ ref=n">llist_ntry"/a>(isig_i9a>;
<9 href="ipc/mqueue.c#L2rellist_ntry"/a>(unotif9/a>.<9 href="+code=mame="L260"> 262sSIGEV259losender;
 1493/a>        <="+code=uetuval clsg href"ipc/mqueue.c#L2illist_ntry"/a>(llist_ntry"/a>(;*truct lolist_delgt;uosllftasender;
 1493/a>        listgt;llist_ntry"/a>( *losender;
 1493/a>        de_ie;
llist_ntry"/a>(ie_wai"_q/a> wake_up_process;
 1493/a>        tas);
llist_ntry"/a>(9wal"/93UT/a>,
        dmp_wmb;
llist_ntry"/a>(9ew"/a94E class="srefipc/mqueue.c#L2sender;
 1493/a>        de_ie;
llist_ntry"/a>(c9ask/a> =  262  a href="+code=m9=+code=no9"+code=iwal" class="sref9>lwal94ss="sipc/mqueue.c#L2SYSCALL_DEFINE5    <        a SYSCALL_DEFINE5thcode=slist class=" hrtimedsend" class="line" mqrtimedsend href"ipc/mqueue.c#L2mqd   a href="+code=mqd   href"ipc/mqueue.c#L2mqdes;
i/a> href="f="ipc/mqueue.c#Lu_lsgsp"L;
ctask/a> >9mqucurrmsgi/a> = slass="sref">lo41"    a href="+code=41"    href"ipc/mqueue.c#L2msgsle ;
d ipc="mqueue.c#L2646 lsgspri3" class="line" msgspri3hreffL161" id="L261" class="l9=5href="+9; o" class="sref">i/a> href="f="ipc/mqueue.c#Lu_absrtimeoutgt;( 154          9     94sSIGEV_NONE/a> 
<9n7href="+9        i
iew"/a60" id="L263" class="lfogt;llist_ntry"/a>( hre="ipc/mqueue.c#L2itruct llist_ntry"/a>(iew"/a9 >949ine" name="L60" id="L263" class="lexs_wait_ claslass="line" namexs_wait_ clashref=1493/a>        waito" class="sref"wait hre">llist_ntry"/a>(llist_ntry"/a>(c9ent"> *
info ;
60" id="L263" class="lmsgss="+code=uetuval clsgss="href="ipc/mqueue.c#L2msgsp"L;
llist_ntry"/a>( 155_illist_ntry"/a>(
us"e=slist class="ktime   a href="+code=ktime  href=1493/a>        expires;
llist_ntry"/a>( 15954s="line" nam60" id="L263" class="ltimespectruct llist_ntry"/a>((&am9ass="line" name="L156"> 955href="ipc/mqueue.c#L2newsleafgt;llist_ntry"/a>( 155 tatic si9,sou_iunoc9code=sque9e_inode_info" class="sre9">mqu95= rtieso9"/a> 95q class="sreflass="sref">ie_wai"u_absrtimeoutgt;sSIGEV_NONE/a> 
<9ca href="9ref="+code=uetuval class9"sref95UT/a>,
uosllftaexpires;
uosllftats;
llist_ntry"/a>(sCLOCKef="ipc/mqueue.c#L2 hs;
(llist_ntry"/a>(cwq96href="ipc/mqueue.c#L2ipc/mqueue.c#L2timeoutgt;uosllftaexpires;
llist_ntry"/a>( ,sa href="+code9us" c96href="+code=mame="L260"> 262iew"/a> >iew"/a> >lass="sref">ie_wai"unlikelxt_wai"_qeue./a>unlikelxthcode=slist class=" sgspri3" class="line" msgspri3href 3"> = (unsiga>d long)2ipc/mqueue.c#L2MQ_PRIO_MAX" class="line" MQ_PRIO_MAXhrefee>llist_ntry"/a>(llist_ntry"/a>(i9foie_wai"_q/a> audit_ hrsendrecvslist_ntry" claaudit_ hrsendrecvthcode=slist class=" hdes;
uosllftats;
llist_ntry"/a>(llist_ntry"/a>(ie_wai"unlikelxt_wai"_qeue./a>unlikelxthcod!"L263" class="lfgt;sSIGEV_NONE/a> 
<9ode=ltati9 class="sref">lsatis/a>;9= llist_ntry"/a>(llist_ntry"/a>( 262(&am9ass="sref">lsatis/a>; = 9a hre9="+codme="L260"> 262loitruct  263       fi58gt; 1493/a>        f_sathtruct uext_wai"_qeue./a>dhref="+cohref="+code=sode= cla_itruct llist_ntry"/a>(iew"/alass="sref">ie_wai"unlikelxt_wai"_qeue./a>unlikelxthcode=slist class="fgt; 1493/a>        f_o class="sref">inf_o sref"!uelass="sref">uosllftamqode=_oilLroperations" class="line" mqode=_oilLroperationshrefins="sref">sSIGEV_NONE/a> 
<9one is wa9                lorhrgt;llist_ntry"/a>(info<9a>-&g97UT/a>,
llist_ntry"/a>(lsatis/a>; = 9a hre98E class="srefame="L260"> 262loi hree">llist_ntry"/a>(,
truct  263       fi58gt; 1493/a>        f_sathtruct uext_wai"_qeue./a>dhref="+co, 0n;me="L260"> 262 262unlikelxthcod!de=slist class="fgt; 1493/a>        f_m/a>truct sSIGEV_NONE/a> 
<9=l/a>(&am9ENRESTARTSYS class="sref9>eNRE98"+code=MSTATEf="ipc/m"+code=sode= clrhrgt;llist_ntry"/a>( 158           9    <98llist_ntry"/a>( 2629NTIME98e=le_wai"_q class="sref">ie_wai"unlikelxt_wai"_qeue./a>unlikelxthcode=slist class=" sgsle ;
 mclass="sref">loi 1493/a>        2" class="line" name="L262"> 263       ma hsg41" " class="line" mq hsg41" hrefins="sref">sSIGEV_NONE/a> 
<9e" name="9151"> 159           9     99E class="sref">sCLOCKe=slist class="rhrgt;llist_ntry"/a>(llist_ntry"/a>(,
 262iew"/a> > 262994s="line" namee.c#L2617 id="L267" c/* Firss ef= co8alloc_ie
memory, beforeadoL268anythL268withnfo >info-9gt; > 1599     99a href="ipc/mclass="sref">lomsgsp"L;
 262 158iew"/alass="sref">ie_wai"IS_ERR    <        a IS_ERRthcode=slist class="msgsp"L;
sSIGEV_NONE/a> 
<9ene is wa9ueue.c#L260" id="L260" c9ass="99q class="srefef="ipc/class="sref">lorhrgt;loPTR_ERR    <        a PTR_ERRthcode=slist class="msgsp"L;
 262 *
llist_ntry"/a>( *
10ne class="srefame/pre>
 *
llist_ntry"/a>(lomsgsp"L;
 1493/a>        <_ts;
lomsgsle ;
llist_ntry"/a>( 1493/a>        <_typ " class="line" m_typ href=ueclass="sref">lomsgspri3" class="line" msgspri3href">llist_ntry"/a>(iew"/a> >10nss="sme="L260"> 262 >info-10n c>10nref="262" class="line" name=========* lsgsinser/ really waass /a co8have a valid, spacl n">lE60" id=sonfo > 15910ne">10n/mqueue.c#L2617 id="L267" c=========* itadoesn't8have co8kmalloc a GFP_ATOMIC8alloc_iion, but it8willtho >10nde=mtue.c#L2617 id="L267" c=========* fall back co8t6atalasnecessary.tho >10nq claue.c#L2617 id="L267" c=========*info > *
 1493/a>        _cach " class="line" _cach hrefi >lonewsleafgt; 262apt; b10 cl>10L"sref">iew"/a> >10La href="+codeipc/mqueue.c#L2spin_="sref">sou"/a> 
uosllftai 1493/a>        ="sref">sou"/a> 
 26210Lss="sme="L260"> 262 1493/a>        _cach " class="line" _cach href 3ass=3ass=/mqueue.c#L2646 newsleafgt;sSIGEV_NONE/a> 
<10L5" name=10ss="sref">lset_uookis/a>10ss=>10L"+code=MSTATEf="ipc/m"e.c#L2617 id="L267" c/* Save our specul_iive alloc_iion
ipco8t67 cach =*info >ie_wai"INIT_LIST_HEAD    <        a INIT_LIST_HEADthcodlass="sref">uosllftanewsleafgt; 1493/a>        <="_listgt; 262sdata/a> )[a href=10sre>10L"sref">iew"/a> ; 1493/a>        _cach " class="line" _cach href ue.c#L250" id="L2newsleafgt; 26210Lq class="srefef="ipc/class="sref">loi 1493/a>        q41" " class="line" q41" href += 41" of("ipc/mqueue.c#L2newsleafgt; 262 *
llist_ntry"/a>( 26210L2 class="srefa elses="sref">sSIGEV_NONE/a> 
<10L1" name=10an>
ie_wai"_q/a> kfreegt; 262 262 tatic sv10"L2>10L2 class="srefame="L260"> 26210Lss="sme="L260"> 262 /* notifi10ass>10L4s="line" namef="e=slist class="i 1493/a>        2" class="line" name="L262"> 263       ma curhsg4" class="line" mq curhsg4href=u="ipc/mqueue.c#L26 1493/a>        2" class="line" name="L262"> 263       ma haxs="+code=uetuval cla haxs="href)s="sref">sSIGEV_NONE/a> 
<1025" name=10" class="line" name="L2610" c>10L"+code=MSTATEf="ipc/mef="e=slist class="fgt; 1493/a>        f_flag4" class="line" f_flag4href 3ass=/mqueue.c#L2646 O_NONBLOCK" class="line" O_NONBLOCKhref)s="sref">sSIGEV_NONE/a> 
<1026" name=1039;tt process/apan>
10Lie_wai"_q/a> rhrgt;llist_ntry"/a>(
10L"sref">iew"/a> ;sSIGEV_NONE/a> 
<10L8" name=10"ing/apan>
10Lq class="srefef="ipc/"+code=m">ie_wai"_q/a> waito" class="sref"wait hre> 263       tas);
llist_ntry"/a>(10LUT/a>,
ie_wai"_q/a> waito" class="sref"wait hre> 263       <="+code=uetuval clsg hrep="(voidf*)2ipc/mqueue.c#L2msgsp"L;
llist_ntry"/a>(unotify_ownr10las>10laT/a>,
ie_wai"_q/a> waito" class="sref"wait hre> 263       de_ie;
llist_ntry"/a>(attr.10ly/a> lorhrgt;lowq_slee class="sref">inwq_slee thcode=slist class="iuosllftawaito" class="sref"wait hre);me="L260"> 262isig_i10ig_>10la href="+code=nodtify_READY cee.c#L2617 id="L267" c/*nfo >unotif10tif>10lss="lme.c#L2617 id="L267" c=========================* wq_slee  must be called8with i ="sr held,
andnfo >sSIGEV2510/mq>10lef">icode=l__donaotify class========================* re10lref="262" class="line" name=========================*info >;*truct 10lllist_ntry"/a>( *iew"/a> ;llist_ntry"/a>(10lq class="srefa elses="sref">sSIGEV_NONE/a> 
<1039" name=10code=iwal" class="sref">10cod>10lUT/a>,
loi 26210+co>10+c+code=MSTATEf="ipc/mef="e=slist class="receiverlass="line" namreceiver hrees="sref">sSIGEV_NONE/a> 
<1041" name=10ask/a> = lopipe"/a>d_sendo" class="sref"pipe"/a>d_sendsrefdclass="sref">loi 26210+a href="+code=nodtifya elses="sref">sSIGEV_NONE/a> 
<1043" name=10"+code=iwal" class="sref10"+c>10+href="+code=msignvnao_READY c"e.c#L2617 id="L267" c/* adds message
co8t67 code= *info >ctask/a> >10las>10+ef">mqucurrmsgi/a> = f="ipc/m"+code=sode= clrergt;lolsgsinser/+code=uetuval clsgsinser/thcodclass="sref">lomsgsp"L;
 26210+"+code=MSTATEf="ipc/mf="ipc/mef="e=slist class="rergt; 154          10L15>10+sou"/a> 
llist_ntry"/a>(iew"/a> ;us"mqueue.c#L2646 __do_notifxt_wai"_qeue./a>__do_notifxsrefdclass="sref">loi 26210+q class="srefef="ipc/a>llist_ntry"/a>(iew"/a10lew>10+UT/a>,
truct loitruct loitruct (10uea href="ipc/mqueue.c"+code=mmmmmmmmm"+code=sode= clCURRENT_TIMEtruct llist_ntry"/a>( *
 262 15510u" clamqueue.c#L2646 out un="sref">sou"/a> 
 262
us"e=slist class="spin_un="sref">sou"/a> 
uosllftai 1493/a>        ="sref">sou"/a> 
 26210u4 clamqueue.c#L2646 out freegt; 262 10ass>10u">iew"/a> >lass="sref">ie_wai"rergt; 155 tatic si10"L1>10uie_wai"freess="+code=uetuval cfreess="thcodclass="sref">lomsgsp"L;
 262 262rtieso10sou>10uq class="sref">ie_wai"_q/a> fdputtruct lofgt; 26210u9srefmqueue.c#L2646 outtruct  262 26210d clasame="L260"> 262  a href="+code=m10d3" name=10info ,sa href="+code10inf>10dss="sipc/mqueue.c#L2SYSCALL_DEFINE5    <        a SYSCALL_DEFINE5thcode=slist class=" hrtimedreceiveo" class="sref" hrtimedreceivehreff"ipc/mqueue.c#L2mqd   a href="+code=mqd   href"ipc/mqueue.c#L2mqdes;
i/a> href="f="ipc/mqueue.c#Lu_lsgsp"L;
mqucurrmsgi/a> = slass="sref">lo41"    a href="+code=41"    href"ipc/mqueue.c#L2msgsle ;
d ipc"ipc/mqueue.c#L2_f/a> o" class="sref">i/a> href="f="ipc/mqueue.c#Lu_lsgspri3" class="line" u_lsgspri3hreffL161" id="L261" class="l10d5" name=10>                  >10d"+code=MSTATEf="ipc/mconst260" id="L263" class="ltimespectruct i/a> href="f="ipc/mqueue.c#Lu_absrtimeoutgt;(10dsSIGEV_NONE/a> 
<10d7" name=10a href="+code=mbin_lunoc10a h>10dde=mties clasclass="sref">los41"    a href="+code=441"    hreref="ipc/mqueue. hrgt; 262i10ode>10d8ine" name="L60" id="L263" class="lmsgss="+code=uetuval clsgss="href="ipc/mqueue.c#L2msgsp"L;
llist_ntry"/a>(10d9ine" name="L60" id="L263" class="lfogt;llist_ntry"/a>( , hre="ipc/mqueue.c#L2itruct llist_ntry"/a>(1" name=10while(info ;
60" id="L263" class="lmqode=_i_i_illist_ntry"/a>(2" name=10 class="sref">lsatis/a>;10 cl>10>a href="+code60" id="L263" class="lexs_wait_ claslass="line" namexs_wait_ clashref=1493/a>        waito" class="sref"wait hre">llist_ntry"/a>(3" name=10ipc/mqueue.c#L251" id="L10ipc>10>ss="sref">us"e=slist class="ktime   a href="+code=ktime  href=1493/a>        expires;
llist_ntry"/a>(4" name=10f (10>4s="line" nam60" id="L263" class="ltimespectruct llist_ntry"/a>(5" name=10ass="sref">lsatis/a>; = 10ass>10>"+code=MSTATE60" id="L263" class="lposix_lsgstree_truct llist_ntry"/a>(6" name=10mqueue.c#L157" id="L157"10mqu>10>6 clanfo"/a>  a href="+code=m1077" name=10e.c#L157" id="L258" clas10e.c>10>"sref">iew"/alass="sref">ie_wai"u_absrtimeoutgt;sSIGEV_NONE/a> 
<10>8" name=10                10>q class="srefef="ipc/ipc/mqueue.c#L2646 rhs;
uosllftaexpires;
uosllftats;
 262info<10lnf>10>UT/a>,
(lsatis/a>; = 10ass>10asa href="ipc/mqueue.c"+code=m 
llist_ntry"/a>(10ay/a> ie_wai"_q/a> timeoutgt;uosllftaexpires;
llist_ntry"/a>(10a2 class="srefame="L260"> 26210ass="sme="L260"> 26210a4s="sref">us"e=slist class="audit_ hrsendrecvslist_ntry" claaudit_ hrsendrecvthcode=slist class=" hdes;
uosllftats;
llist_ntry"/a>( 262 158           10157>10aa href="ipc/mclass="sref">lofgt;llist_ntry"/a>(10a"sref">iew"/alass="sref">ie_wai"unlikelxt_wai"_qeue./a>unlikelxthcod!"L263" class="lfgt;sSIGEV_NONE/a> 
<10a8" name=10e.c#L251" id="L159" clas10e.c>10aq class="srefef="ipc/class="sref">lorhrgt;llist_ntry"/a>(10ENT>10aUT/a>,
llist_ntry"/a>( 159           10151>1015 class="srefame="L260"> 262iew"/a> >truct  263       fi58gt; 1493/a>        f_sathtruct uext_wai"_qeue./a>dhref="+cohref="+code=sode= cla_itruct llist_ntry"/a>(iew"/a> >iew"/alass="sref">ie_wai"unlikelxt_wai"_qeue./a>unlikelxthcod.c#L250" id="L2fgt; 1493/a>        f_o class="sref">inf_o sref"!uelass="sref">uosllftamqode=_oilLroperations" class="line" mqode=_oilLroperationshrefins="sref">sSIGEV_NONE/a> 
<1014" name=10155" class="line" name="10155>101ef">mqucurrmsgi/a> = slass="sref">lorhrgt;llist_ntry"/a>(info-10" c>101"+code=MSTATEf="ipc/mgoto"mqueue.c#L2646 out fputtruct llist_ntry"/a>( 15910ne">1016 class="srefame="L260"> 262101de=mties clasclass="sref">loi hree">llist_ntry"/a>(101q class="sref">ie_wai"_q/a> audit_itruct  263       fi58gt; 1493/a>        f_sathtruct uext_wai"_qeue./a>dhref="+co, 0n;me="L260"> 262 *
 *
11ne class="srefef="e=slist class="unlikelxt_wai"_qeue./a>unlikelxthcod!de=slist class="fgt; 1493/a>        f_m/a>truct sSIGEV_NONE/a> 
<11n1" name=11n        
ie_wai"_q/a> rhrgt;llist_ntry"/a>(llist_ntry"/a>(iew"/a> >110href="+code=mame="L260"> 262iew"/a> >info-11n c>110"+code=MSTATE"e.c#L2617 id="L267" c/* checksfef=buffer is big enough *info > 15911ne">1106 class="srefef="e=slist class="unlikelxt_wai"_qeue./a>unlikelxthcodipc/mqueue.c#L2msgsle ;
loi 1493/a>        2" class="line" name="L262"> 263       ma hsg41" " class="line" mq hsg41" hrefins="sref">sSIGEV_NONE/a> 
<1107" name=11n id="L258" class="line"11n i>110"sref">iew"/a> ;llist_ntry"/a>(110q class="srefef="ipc/goto"mqueue.c#L2646 out fputtruct llist_ntry"/a>( *
 262 262apt; b11 cl>1111+code=MSTATE"e.c#L2617 id="L267" c/*nfo >11La hre262" class="line" name=========* lsgsinser/ really waass /a co8have a valid, spacl n">lE60" id=sonfo >111ss="lme.c#L2617 id="L267" c=========* itadoesn't8have co8kmalloc a GFP_ATOMIC8alloc_iion, but it8willtho >icode=l__donaotify class========* fall back co8t6atalasnecessary.tho >lset_uookis/a>11ss=>111ref="262" class="line" name=========*info > 1493/a>        _cach " class="line" _cach hrefi >sdata/a> )[a href=11sre>11L"sref">iew"/a> ; 262111in_lock_/a>(& *
sou"/a> 
uosllftai 1493/a>        ="sref">sou"/a> 
 262 2621122 clame="L260"> 262
 1493/a>        _cach " class="line" _cach href 3ass=3ass=/mqueue.c#L2646 newsleafgt;sSIGEV_NONE/a> 
<1122" name=11"L263"> 262 tatic sv11"L2>112a href="+code=nodtify"e.c#L2617 id="L267" c/* Save our specul_iive alloc_iion
ipco8t67 cach =*info >112href="+code=msignvnaomqueue.c#L2646 INIT_LIST_HEAD    <        a INIT_LIST_HEADthcodlass="sref">uosllftanewsleafgt; 1493/a>        <="_listgt; 262 /* notifi11ass>112ef">mqucurrmsgi/a> = slass="sref">loi 1493/a>        _cach " class="line" _cach href ue.c#L250" id="L2newsleafgt; 26211L"+code=MSTATEf="ipc/mslass="sref">loi 1493/a>        q41" " class="line" q41" href += 41" of("ipc/mqueue.c#L2newsleafgt; 262
11LsSIGEV_NONE/a> 
<1127" name=11anged reom/apan>
11L"sref">iew"/a> ; 262
11Lq class="srefame="L260"> 262112ue.c#L161" id="L261" class="l113e" name=11lass="sref">unotify_ownr11las>113e class="srefef="e=slist class="i 1493/a>        2" class="line" name="L262"> 263       ma curhsg4" class="line" mq curhsg4href=u="0)s="sref">sSIGEV_NONE/a> 
<1131" name=11ef">attr.11ly/a>  263       fi58gt; 1493/a>        f_flag4" class="line" f_flag4href 3ass=/mqueue.c#L2646 O_NONBLOCK" class="line" O_NONBLOCKhref)s="sref">sSIGEV_NONE/a> 
<1132" name=11ig_i class="sref">isig_i11ig_>11la href="+code=nodtify_READY cepc/mqueue.c#L2spin_un="sref">sou"/a> 
uosllftai 1493/a>        ="sref">sou"/a> 
 262unotif11tif>113href="+code=msignvnao_READY c"=slist class="rhrgt;llist_ntry"/a>(sSIGEV2511/mq>113ef">mqucurrmsgi/a> = a elses="sref">sSIGEV_NONE/a> 
<1135" name=11ef="ipc/mqueue.c#L255" i11ef=>113"+code=MSTATEf="ipc/mf="ipc/m               waito" class="sref"wait hre> 263       tas);
llist_ntry"/a>(;*truct 11l 263       de_ie;
llist_ntry"/a>( *iew"/a> ;inwq_slee thcode=slist class="iuosllftawaito" class="sref"wait hre);me="L260"> 262113q class="srefef="ipc/"+code=m">ie_wai"_q/a> msgsp"L;
 263       <="+code=uetuval clsg hre;me="L260"> 26211cod>11lUT/a>,
 26211+co>1142 class="srefa elses="sref">sSIGEV_NONE/a> 
<1141" name=11ask/a> = ie_wai"_q/a> msgsp"L;
 262114" clanfo"/a>  a href="+code=m1143" name=11"+code=iwal" class="sref11"+c>11+href="+code=msignvnaoe=slist class="itruct loitruct loitruct   a href="+code=m1144" name=11lass="sref">ctask/a> >11las>11+ef">mqucurrmsgi/a> = f="ipc/msignvnaoe=slist class="CURRENT_TIMEtruct llist_ntry"/a>(114"+codme="L260"> 262 154          11L15>11+ >iew"/a> ;d_receiveo" class="sref"pipe"/a>d_receivethcode=slist class="i 26211+q class="srefef="ipc/epc/mqueue.c#L2spin_un="sref">sou"/a> 
uosllftai 1493/a>        ="sref">sou"/a> 
 262iew"/a11lew>11+UT/a>,
 2621155 class="srefame="L260"> 262 *
sSIGEV_NONE/a> 
<11u2" name=11L153"> 155115a href="+code=nodtify"=slist class="rhrgt; 1493/a>        <_ts;
 262
 262115ef">mqucurrmsgi/a> = ef="de=slist class="u_lsgspri3" class="line" u_lsgspri3href 3ass=3ass=/mqueue.c#L2646 put ua> o" class="sref"put ua> thcodipc/mqueue.c#L2msgsp"L;
 1493/a>        <_typ " class="line" m_typ hreff="ipc/mqueue.c#Lu_lsgspri3" class="line" u_lsgspri3href)) ||me="L260"> 262 11ass>115"+code=MSTATEf="ipc/mf="ipc/m               storess="+code=uetuval cstoress="thcodipc/mqueue.c#L2u_lsgsp"L;
 1493/a>        <_ts;
sSIGEV_NONE/a> 
<1156" name=11"L157"> 155 tatic si11"L1>11u 262iew"/a> ;llist_ntry"/a>(rtieso11sou>115q class="srefef="ipc/epc/mqueue.c#L2freess="+code=uetuval cfreess="thcodclass="sref">lomsgsp"L;
 262115e=le_wai"_q came="L260"> 262loout fputtruct  2621161 href="ipc/mclass="sref">lofdputtruct lofgt; 262 262 ,sa href="+code11inf>116href="+code=m 
 262mame="L260"> 262                  >116"+codme="L260"> 262116/mqueue.c#L2617 id="L267" c/*nfo >  waass /a co8deregist>  (with8ss=" as point> )nfo >i11ode>116q claue.c#L2617 id="L267" c=*
and he isn't87" clasly own>  of notific_iion, will be sillasly discarded.tho >11d9ine"ue.c#L2617 id="L267" c=*
It isn't8explicisly defia>d ip8t67 POSIX.tho > , >infipc/mqueue.c#L2SYSCALL_DEFINE2gt;lomq_notifxt_wai"_qeue./a>mq_notifxhreff"ipc/mqueue.c#L2mqd   a href="+code=mqd   href"ipc/mqueue.c#L2mqdes;
2" name=11 class="sref">lsatis/a>;11 cl>117a href="+code=nodtifyconst260" id="L263" class="lsigevlasgt;i/a> href="f="ipc/mqueue.c#Lu_notific_iion;
3" name=11ipc/mqueue.c#L251" id="L11ipc>11>ss="s="sref">sSIGEV_NONE/a> 
<11>4" name=11f (11>4s="line" namipc/mqueue.c#L2646 rhrgt; 2625" name=11ass="sref">lsatis/a>; = 11ass>11>"+code=MSTATE60" id="L263" class="lfogt;llist_ntry"/a>(6" name=11mqueue.c#L157" id="L157"11mqu>1176+code=MSTATE60" id="L263" class="ls"sref">sou"/a> 
sou"/a> 
llist_ntry"/a>(7" name=11e.c#L157" id="L258" clas11e.c>11>"sref">iew"/a60" id="L263" class="l&truct truct llist_ntry"/a>(8" name=11                1178ine" name="L60" id="L263" class="lsigevlasgt;llist_ntry"/a>(9" name=11lnfo" class="sref">info<11lnf>1179ine" name="L60" id="L263" class="lmqode=_i_i_illist_ntry"/a>(lsatis/a>; = 11ass>118 ine" name="L60" id="L263" class="lsk_buffgt;llist_ntry"/a>(118"sref">iew"/a> >11a2 class="sreflass="sref">ie_wai"u_notific_iion;
sSIGEV_NONE/a> 
<1183" name=11                118href="+code=msignvnaolass="sref">ie_wai"copy_fromf/a> o" class="sref"copy_fromf/a> thcodlass="sref">uosllftanotific_iion;
118ef">mqucurrmsgi/a> = f="ipc/msignvnao name="L61" of(60" id="L263" class="lsigevlasgt; 262 158           11157>1186 class="srefame="L260"> 26211a"srefme="L260"> 262118q class="sref">ie_wai"_q/a> audit_mq_notifxt_wai"_qeue./a>audit_mq_notifxthcodclass="sref">lomqdes;
uosllftanotific_iion;
llist_ntry"/a>(11ENT>118ue.c#L161" id="L261" class="l119e" name=11151"> 159           11151>1115 class="srefipc/mqueue.c#L2ncgt;llist_ntry"/a>(los"sref">sou"/a> 
llist_ntry"/a>(ie_wai"u_notific_iion;
sSIGEV_NONE/a> 
<1193" name=11="sref">iew"/a> >ie_wai"unlikelxt_wai"_qeue./a>unlikelxthcodipc/mqueue.c#L2notific_iion;
digev_notifxhref"!ue.c#L250" id="L2SIGEV_NONEtruct sSIGEV_NONE/a> 
<1194" name=11155" class="line" name="11155>111ef">mqucurrmsgi/a> =              ipc/mqueue.c#L2notific_iion;
digev_notifxhref"!ue.c#L250" id="L2SIGEV_SIGNA=slist_ntry" claSIGEV_SIGNA=href 3ass=3ass="sref">sSIGEV_NONE/a> 
<1195" name=11" class="sref">info-11" c>111"+code=MSTATEf="ipc/m             ipc/mqueue.c#L2notific_iion;
digev_notifxhref"!ue.c#L250" id="L2SIGEV_THREAD    <        a SIGEV_THREAD hre))"sref">sSIGEV_NONE/a> 
<1196" name=11ne" name="L157"> 15911ne">119llist_ntry"/a>(119"sref">iew"/a> ;ie_wai"notific_iion;
digev_notifxhref"u="ipc/mqueue.c#L2SIGEV_SIGNA=slist_ntry" claSIGEV_SIGNA=href 3ass=3ass="sref">sSIGEV_NONE/a> 
<1198" name=11ueue.c#L260" id="L260" c11ueu>119q class="srefef="ipc/"+code=m!"L263" class="lvalid_sigaalslist_ntry" clavalid_sigaalthcodipc/mqueue.c#L2notific_iion;
sSIGEV_NONE/a> 
<1119" name=11ent"> *
llist_ntry"/a>( *
120sa href="ipc/mqueue.came="L260"> 262ie_wai"notific_iion;
digev_notifxhref"u="ipc/mqueue.c#L2SIGEV_THREAD    <        a SIGEV_THREAD hre)s="sref">sSIGEV_NONE/a> 
<12n2" name=12na href="+code=plist_del12na >120a href="+code=nodtifyyyyyyyyylong2ipc/mqueue.c#L2timeo    <        a timeosref">llist_ntry"/a>(iew"/a> >120ss="sme="L260"> 262mqucurrmsgi/a> = f="ipc/m"e.c#L2617 id="L267" c/* create8t67 notifx skb=*info >info-12n c>120"+code=MSTATEf="ipc/mf="ipc/m               ncgt;alloc_skbthcodipc/mqueue.c#L2NOTIFY_COOKIE_LENtruct  262 15912ne">120sSIGEV_NONE/a> 
<12n7" name=12n id="L258" class="line"12n i>120"sref">iew"/a> ;llist_ntry"/a>(120q class="srefef="ipc/////////////////goto"mqueue.c#L2646 outtruct llist_ntry"/a>( *
 262ie_wai"copy_fromf/a> o" class="sref"copy_fromf/a> thcod"L263" class="lncgt;apt; b12 cl>121y/a>  263       digev_valaslass="line" namdigev_valashref> 263       divalsp"L;
121a href="+code=nodtifyyyyyyyyyf="ipc/mf="ipc/m               NOTIFY_COOKIE_LENtruct sSIGEV_NONE/a> 
<12L3" name=12eue.c#L262" id="L265" cl12eue>121href="+code=msignvnao_READY cf="ipc/m               rhrgt; 262mqucurrmsgi/a> = f="ipc/msignvnaogoto"mqueue.c#L2646 outtruct llist_ntry"/a>(lset_uookis/a>12ss=>121"+code=MSTATEf="ipc/mf="ipc/mame="L260"> 262  a href="+code=m12L7" name=12sref">sdata/a> )[a href=12sre>12L"sref">iew"/a> ; >121q class="srefef="ipc/"+code=m">ie_wai"_q/a> skb_puttruct llist_ntry"/a>( *
 > 262122= claclass="sref">loretext_wai"_qeue./a>retex cla:me="L260"> 262
lofgt; 263       digev_siga3" class="line" digev_siga3hrefi">llist_ntry"/a>( 262 tatic sv12"L2>122a href="+code=nodtifyyyyyyyyyef="!"L263" class="lfgt;sSIGEV_NONE/a> 
<12L3" name=12e=mqueue_inode_info" cla12e=m>122href="+code=msignvnao"+code=msignvnigclass="sref">lorhrgt;llist_ntry"/a>( /* notifi12ass>122ef">mqucurrmsgi/a> =                 goto"mqueue.c#L2646 outtruct llist_ntry"/a>(12L"+code=MSTATEf="ipc/mmmmmmmmmame="L260"> 262
122sou"/a> 
innetss/ksghrs"srbyoil thcode=slist class="fgt;llist_ntry"/a>(
12L"sref">iew"/a> ;lofgt; 262
122q class="srefef="ipc/"+code=mlass="sref">ie_wai"IS_ERRgt;los"sref">sou"/a> 
sSIGEV_NONE/a> 
<1229" name=12"L260" class="line" name12"L2>122UT/a>,
los"sref">sou"/a> 
 262unotify_ownr12las>123ea href="ipc/mqueue.c"+code=mmmmmmmmm"+code=sode= cls"sref">sou"/a> 
llist_ntry"/a>(attr.12ly/a> llist_ntry"/a>(isig_i12ig_>12la href="+code=nodtify_READY came="L260"> 262unotif12tif>123ss="sme="L260"> 262sSIGEV2512/mq>123ef">mqucurrmsgi/a> = mmmmmmmm"+code=sode= cltimeo    <        a timeosref=ue.c#L250" id="L2MAX_SCHEDULE_TIMEOUTtruct llist_ntry"/a>(123"+code=MSTATEf="ipc/mf="ipc/m               rhrgt;netss/ksottachskbthcodclass="sref">los"sref">sou"/a> 
uosllftatimeo    <        a timeosreff"ipc/mqueue.c#L2Nde=slist_ntry" class="srefn">llist_ntry"/a>(;*truct 12lsSIGEV_NONE/a> 
<1237" name=12./a> *iew"/a> ;retex cla">llist_ntry"/a>(123q class="srefef="ipc/"+code=mef=""+code=sode= clrhrgt;sSIGEV_NONE/a> 
<1239" name=12code=iwal" class="sref">12cod>12lUT/a>,
sou"/a> 
llist_ntry"/a>(12+co>124ea href="ipc/mqueue.c"+code=mmmmmmmmm"+code=sode= clncgt;llist_ntry"/a>( = llist_ntry"/a>(124a href="+code=nodtify_READY came="L260"> 26212+href="+code=msignvnaoame="L260"> 262ctask/a> >12las>12+ef">mqucurrmsame="L260"> 262124"+codme="L260"> 262 154          12L15>12+lofgt;llist_ntry"/a>(iew"/alass!"L263" class="lfgt;sSIGEV_NONE/a> 
<1248" name=1212+q class="srefef="ipc/epc/mqueue.c#L2rhrgt;llist_ntry"/a>(iew"/a12lew>12+UT/a>,
llist_ntry"/a>(1255 class="srefame="L260"> 262 *
iew"/a> > 155125a href="+codemqueue.c#L2646 itruct  263       fi58gt; 1493/a>        f_sathtruct uext_wai"_qeue./a>dhref="+cohref="+code=sode= cla_itruct llist_ntry"/a>(
iew"/alass="sref">ie_wai"unlikelxt_wai"_qeue./a>unlikelxthcod.c#L250" id="L2fgt; 1493/a>        f_o class="sref">inf_o sref"!uelass="sref">uosllftamqode=_oilLroperations" class="line" mqode=_oilLroperationsthcoins="sref">sSIGEV_NONE/a> 
<1254" name=12" class="line" name="L1512" c>125ef">mqucurrmsgi/a> = epc/mqueue.c#L2rhrgt;llist_ntry"/a>( 12ass>125"+code=MSTATEf="ipc/mgoto"mqueue.c#L2646 out fputtruct llist_ntry"/a>( 155 tatic si12"L1>1256 class="srefame="L260"> 262loi hree">llist_ntry"/a>(rtieso12sou>125in_lock_/a>(&125UT/a>,
 262sou"/a> 
uosllftai 1493/a>        ="sref">sou"/a> 
 262126line" name="Lef=""+code=sode= clu_notific_iion;
sSIGEV_NONE/a> 
<12d2" name=12+code=pwq_ad" class="sre12+co>126a href="+code=nodtifyef="e=slist class="i 1493/a>        notifx_own> ;
sSIGEV_NONE/a> 
<1263" name=12info ,sa href="+code12inf>126href="+code=msignvnao_READY c"=slist class="rhmove_notific_iion;
 262mqucurrmsgi/a> = mmmmmmmm"+code=sode= clitruct loitruct llist_ntry"/a>(                  >126"+code=MSTATEf="ipc/mame="L260"> 262126 1493/a>        notifx_own> ;
sSIGEV_NONE/a> 
<12d7" name=12a href="+code=mbin_lunoc12a h>126"sref">iew"/a> ;llist_ntry"/a>(i12ode>1268a href="ipc/a elses="sref">sSIGEV_NONE/a> 
<12d9" name=12iesou"_range_cock_ class12ies>126UT/a>,
ie_wai"notific_iion;
digev_notifxhrefns="sref">sSIGEV_NONE/a> 
<127e" name=12> ,       SIGEV_NONEtruct  2621" name=12while(loi 1493/a>        notifx;
digev_notifxhrefp="ipc/mqueue.c#L2SIGEV_NONEtruct llist_ntry"/a>(2" name=12 class="sref">lsatis/a>;12 cl>127a href="+code=nodtifyyyyyyyyybreak">llist_ntry"/a>(3" name=12ipc/mqueue.c#L251" id="L12ipc>127href="+code=msignvnaocase  263       SIGEV_THREAD    <        a SIGEV_THREAD hre:me="L260"> 2624" name=12f (127ef">mqucurrmsgi/a> = mmmmmmmm"+code=sode= cli 1493/a>        notifx_s"sref">sou"/a> 
sou"/a> 
llist_ntry"/a>(5" name=12ass="sref">lsatis/a>; = 12ass>127"+code=MSTATEf="ipc/mf="ipc/m               i 1493/a>        notifx_cookietruct llist_ntry"/a>(6" name=12mqueue.c#L157" id="L157"12mqu>127sou"/a> 
llist_ntry"/a>(7" name=12e.c#L157" id="L258" clas12e.c>127"sref">iew"/a> ;llist_ntry"/a>(8" name=12                127q class="srefef="ipc/"+code=m">ie_wai"_q/a> i 1493/a>        notifx;
digev_notifxhrefp="ipc/mqueue.c#L2SIGEV_THREAD    <        a SIGEV_THREAD hre">llist_ntry"/a>(9" name=12lnfo" class="sref">info<12lnf>127UT/a>,
llist_ntry"/a>(lsatis/a>; = 12ass>128ea href="ipc/mqueue.ccase  263       SIGEV_SIGNA=slist_ntry" claSIGEV_SIGNA=href:me="L260"> 262128y/a> loi 1493/a>        notifx;
llist_ntry"/a>(128a href="+code=nodtifyyyyyyyyyclass="sref">loi 1493/a>        notifx;
llist_ntry"/a>(128href="+code=msignvnao"+code=m">ie_wai"_q/a> i 1493/a>        notifx;
digev_notifxhrefp="ipc/mqueue.c#L2SIGEV_SIGNA=slist_ntry" claSIGEV_SIGNA=href">llist_ntry"/a>(128ef">mqucurrmsgi/a> = f="ipc/mbreak">llist_ntry"/a>( 262 158           12157>1286 clanfo"/a>  a href="+code=m12a7" name=12                128"sref">iew"/a> ; 1493/a>        notifx_own> ;
llist_ntry"/a>(128q class="srefef="ipc/epc/mqueue.c#L2i 1493/a>        notifx_/a> _ns" class="line" notifx_/a> _nshref"ure=slist class="get_/a> _ns" class="line" get_/a> _nsthcode=slist class="6" clas_/a> _ns" class="line" 6" clas_/a> _nsthcodin">llist_ntry"/a>(12ENT>128UT/a>,
truct loitruct llist_ntry"/a>( 159           12151>1295 class="srefame="L260"> 262lospin_un="sref">sou"/a> 
uosllftai 1493/a>        ="sref">sou"/a> 
 262 262iew"/a> >        fdputtruct lofgt; 262mmqueue.c#L2646 outtruct  262info-12" c>121"+code=MSTATEef="e=slist class="s"sref">sou"/a> 
sSIGEV_NONE/a> 
<1296" name=12ne" name="L157"> 15912ne">129netss/ksdetachskbthcodclass="sref">los"sref">sou"/a> 
 262129"sref">iew"/aa elsesef="e=slist class="ncgt;sSIGEV_NONE/a> 
<1298" name=12ueue.c#L260" id="L260" c12ueu>129q class="srefef="ipc/e=slist class="dev_kfree_skbt_wai"_qeue./a>dev_kfree_skbthcodclass="sref">loncgt; 262 *
 262 *
130sa href="ipc/ 
 262 262  a href="+code=m13n3" name=13n"sref">iew"/a> >130ss="sipc/mqueue.c#L2SYSCALL_DEFINE3gt;lomqsghrseta" class="line" nammqsghrseta" cthcof"ipc/mqueue.c#L2mqd   a href="+code=mqd   href"ipc/mqueue.c#L2mqdes;
mqucurrmsgi/a> = const260" id="L263" class="lmqsa" class="line" nammqsa" cthcof"L263" class="l_f/a> o" class="sref">i/a> href="f="ipc/mqueue.c#Lu_mq60a"o" class="sref"u_mq60a" href >info-13n c>130"+code=MSTATEf="ipc/m60" id="L263" class="lmqsa" class="line" nammqsa" cthcof"L263" class="l_f/a> o" class="sref">i/a> href="f="ipc/mqueue.c#Lu_omq60a"o" class="sref"u_omq60a" hre)"sref">sSIGEV_NONE/a> 
<13n6" name=13ne" name="L157"> 15913ne">130sSIGEV_NONE/a> 
<13n7" name=13n id="L258" class="line"13n i>130"sref">iew"/aipc/mqueue.c#L2646 rhrgt; 2621308ine" name="L60" id="L263" class="lmqsa" class="line" nammqsa" cthcof"L263" class="lmq60a"o" class="sref"mq60a" href"mqueue.c#L2646 omq60a"o" class="sref"omq60a" hre;me="L260"> 262 *
llist_ntry"/a>( hre="ipc/mqueue.c#L2itruct llist_ntry"/a>(apt; b13 cl>131y/a> _illist_ntry"/a>(131" clanfo"/a>  a href="+code=m13L3" name=13eue.c#L262" id="L265" cl13eue>1313sref">iew"/alass="sref">ie_wai"u_mq60a"o" class="sref"u_mq60a" hre"!ue.c#L250" id="L2ode=slist_ntry" class="srefns="sref">sSIGEV_NONE/a> 
<1314" name=13code=lnfine" nlass="sref13cod>131ef">mqucurrmsgi/a> = lass="sref">ie_wai"copy_fromf/a> o" class="sref"copy_fromf/a> thcodlass="sref">uosllftamq60a"o" class="sref"mq60a" href"mqueue.c#L2646 u_mq60a"o" class="sref"u_mq60a" hrefL61" of(60" id="L263" class="lmqsa" class="line" nammqsa" cthco))i >lset_uookis/a>13ss=>131"+code=MSTATEf="ipc/mf="ipc/m 
 262ie_wai"mq60a"o" class="sref"mq60a" hre> 263        262sdata/a> )[a href=13sre>13L"sref">iew"/a> ;llist_ntry"/a>(131q class="srefame="L260"> 262 *
 2621325 class="srefipc/mqueue.c#L2fgt;llist_ntry"/a>(
 263       fi58gt;sSIGEV_NONE/a> 
<1322" name=13"L263"> 262 tatic sv13"L2>132a href="+code=nodtifymqueue.c#L2646 rhrgt;llist_ntry"/a>(132href="+code=msignvnaogoto"mqueue.c#L2646 outtruct llist_ntry"/a>( /* notifi13ass>132ef">mqucurrmsame="L260"> 262132"+codme="L260"> 262
132loitruct  263       fi58gt; 1493/a>        f_sathtruct uext_wai"_qeue./a>dhref="+cohref="+code=sode= cla_itruct llist_ntry"/a>(
132"sref">iew"/alassmqueue.c#L2646 unlikelxt_wai"_qeue./a>unlikelxthcod.c#L250" id="L2fgt; 1493/a>        f_o class="sref">inf_o sref"!uelass="sref">uosllftamqode=_oilLroperations" class="line" mqode=_oilLroperationsthcoins="sref"_ntry"/a>(
132q class="srefef="ipc/mqueue.c#L2646 rhrgt;llist_ntry"/a>(132UT/a>,
llist_ntry"/a>(unotify_ownr13las>1335 class="srefame="L260"> 262attr.1331 href="ipc/mclass="sref">loi hree">llist_ntry"/a>(isig_i13ig_>133" clanfo"/a>  a href="+code=m1333" name=13tify class="sref">unotif13tif>133href="+code=m1493/a>        spin_="sref">sou"/a> 
uosllftai 1493/a>        ="sref">sou"/a> 
 262sSIGEV2513/mq>133ef">mme="L260"> 262133"+code=MSTATEmqueue.c#L2646 omq60a"o" class="sref"omq60a" hre=ueclass="sref">loi 1493/a>        a" class="line" nama" cthco;me="L260"> 262;*truct 133loomq60a"o" class="sref"omq60a" hre> 263        263       fi58gt; 1493/a>        f_flags;
 262 *iew"/alassmqueue.c#L2646 u_mq60a"o" class="sref"u_mq60a" hrens="sref"_ntry"/a>(133q class="srefef="ipc/1493/a>        audit_mq_ghrseta" class="line" namaudit_mq_ghrseta" cthcode=slist class=" hdes;
uosllftamq60a"o" class="sref"mq60a" hrei;me="L260"> 26213cod>13lUT/a>,
sou"/a> 
uosllftafgt; 1493/a>        f_="sref">sou"/a> 
 26213+co>134ea href="ipc/mqueue.class="sref">ie_wai"mq60a"o" class="sref"mq60a" hre> 263        262 =  263       fi58gt; 1493/a>        f_flags;
 262134a href="+code=nodtifyelseme="L260"> 26213+href="+code=msignvnao_READY c.c#L250" id="L2fgt; 1493/a>        f_flags;
 262ctask/a> >13las>134ef">mqucurrmsgi/a> = 1493/a>        spin_un="sref">sou"/a> 
uosllftafgt; 1493/a>        f_="sref">sou"/a> 
 262134"+codme="L260"> 262 154          13L15>134 hrehref="+code=sode= cl6_atimetruct loitruct llist_ntry"/aiew"/aame="L260"> 262134in_lock_/a>(&iew"/a13lew>134UT/a>,
sou"/a> 
uosllftai 1493/a>        ="sref">sou"/a> 
 2621355 clame="L260"> 262 *
lorhrgt; 262 155135a href="+codelassmqueue.c#L2646 u_omq60a"o" class="sref"u_omq60a" hre"!ue.c#L250" id="L2ode=slist_ntry" class="sref 3ass=3ass=e.c#L250" id="L2copy_tof/a> o" class="sref"copy_tof/a> thcode=slist class="u_omq60a"o" class="sref"u_omq60a" href"lass="sref">uosllftaomq60a"o" class="sref"omq60a" href >
135ef">mqucurrmsgi/a> = epc/mqueue.c#L2rhrgt; 262 13ass>135"+codme="L260"> 262 155 tatic si13"L1>1356 clamqueue.c#L2646 out fputtruct  262lofdputtruct lofgt; 262rtieso13sou>135in_lomqueue.c#L2646 outtruct  262135UT/a>,
 262 262136"sref">iew"/a> >_operationsT/a>,"sref">uosllftamqode=_dir_i_operations" class="line" mqode=_dir_i_operationshref=ue="sref"_ntry"/a>( ,sa href="+code13inf>136href="+code=m> 263       looku class="sref">inlooku href=uoe=slist class="simple_looku class="sref">insimple_looku  href >mqucurrms> 263       createo" class="sref"createhref=uoe=slist class="mqode=_createo" class="sref"mqode=_create href >                  >136"+code=MSTATE> 263       unlinref">sou"/a> 
sou"/a> 
136 262 262i13ode>1368a hr60a"ic const260" id="L263" class="loilLroperations" class="line" oilLroperationsthcooe=slist class="mqode=_oilLroperations" class="line" mqode=_oilLroperationsthco=ue="sref"_ntry"/a>(136UT/a>,
 263       flushtruct  , 263       pollslist_ntry" clapollhref=uoe=slist class="mqode=_poll_fi58gt;lsatis/a>;13 cl>137a href="+code> 263       llseeref">sou"/a> 
sou"/a> 
 2624" name=13f (137ef">mme="L260"> 2625" name=13ass="sref">lsatis/a>; = 13ass>137"+cod60a"ic const260" id="L263" class="lsuperroperations" class="line" superroperationsthcooe=slist class="mqode=_superrops" class="line" mqode=_superropsthco=ue="sref"_ntry"/a>(6" name=13mqueue.c#L157" id="L157"13mqu>137href=uoe=slist class="mqode=_alloc_itruct 137"sref">iew"/a> 263       a"60"oy_itruct href=uoe=slist class="mqode=_a"60"oy_itruct  href >137q class="sref> 263       evict_itruct truct info<13lnf>137UT/a>,
 263       60a"fs" class="line" s0a"fshref=uoe=slist class="simple_60a"fs" class="line" simple_60a"fs href >lsatis/a>; = 13ass>138ea hr};me="L260"> 262138"sref">iew"/a> >138a hre60a"ic 60" id="L263" class="loilLrsystem_typ8gt;(138href="+code=m> 263       f (">(f >138ef">mqucurrms> 263       mouasgt; 263       kill_sbt_wai"_qeue./a>kill_sbhref=uoe=slist class="kill_litterrsupert_wai"_qeue./a>kill_litterrsuper href > 158           13157>138 262138"srefme="L260"> 262138q claipc/mqueue.c#L2646 mq_i 26213ENT>138UT/a>="sref"_ntry"/a>( 159           13151>1395 class="srefipc/mqueue.c#L2ns" class="line" nsthco43"> 1493/a>        mq_( 262lons" class="line" nsthco43"> 1493/a>        mq_( 262 1493/a>        mq_msg_maxgt; 262iew"/a> >        ns" class="line" nsthco43"> 1493/a>        mq_msg61" _maxgt; 262 1493/a>        mq_msg_defaultgt; 262info-13" c>131"+code=MSTATE1493/a>        ns" class="line" nsthco43"> 1493/a>        mq_msg61" _defaultgt; 262 15913ne">1396 clanfo"/a>  a href="+code=m1397" name=13" id="L258" class="line"13" i>139de=mties clasclass="sref">lons" class="line" nsthco43"> 1493/a>        mq_masgt;kern_mouas_datathcodlass="sref">uosllftamqode=_os_typ8gt; 262139q class="sreflass="sref">ie_wai"IS_ERRgt;lons" class="line" nsthco43"> 1493/a>        mq_masgt;( *
errhref=uoe=slist class="PTR_ERRgt;lons" class="line" nsthco43"> 1493/a>        mq_masgt; 262 *
140ea href="ipc/mqueue.cclass="sref">lons" class="line" nsthco43"> 1493/a>        mq_masgt;llist_ntry"/a>(errhref">llist_ntry"/a>( 262iew"/a> >140href="+code=m 
 262mame="L260"> 262info-14n c>140"+codme="L260"> 262 15914ne">140 262140"sref="sref"_ntry"/a>(1408ine" name="Lclass="sref">lons" class="line" nsthco43"> 1493/a>        mq_masgt; 1493/a>        mas_sbt_wai"_qeue./a>mas_sbhref43"> 1493/a>        s_os_illist_ntry"/a>( *
 262 262apt; b14 cl>141y/a> void/mqueue.c#L2646 mq_put_masgt; 262141" cla="sref"_ntry"/a>(141href="+code=m1493/a>        kern_unmouasgt;lons" class="line" nsthco43"> 1493/a>        mq_masgt; 262mame="L260"> 262lset_uookis/a>14ss=>141"+codme="L260"> 262 262sdata/a> )[a href=14sre>141"sref="sref"_ntry"/a>(141q class="srefipc/mqueue.c#L2646 errort_wai"_qeue./a>errorhref">llist_ntry"/a>( *
 2621425 class="srefipc/mqueue.c#L2mqode=_i_cache class="sref">inmqode=_i_cache href=uoe=slist class="kmem_cache_createo" class="sref"kmem_cache_createthcodce.c#L2617 id60"ing">">(_cache"nfof >
_i 262 tatic sv14"L2>142a href="+code=nodtifyef="ipc/mqueue.cclass="sref">loSLAB_HWCACHE_ALIGN" class="line" SLAB_HWCACHE_ALIGNthcof"ipc/mqueue.c#L2i 262142href="+code=mlass="sref">ie_wai"mqode=_i_cache class="sref">inmqode=_i_cache href=uue.c#L250" id="L2ode=slist_ntry" class="srefnme="L260"> 262 /* notifi14ass>142ef">mqucurrmsgi/a> =  
llist_ntry"/a>(142"+codme="L260"> 262
142 262
142de=mties clasclass="sref">lomq_sysctl_tab58gt; 262
142in_lock_/a>(&142UT/a>,
errorhref=uoe=slist class="registerroilLsystemt_wai"_qeue./a>registerroilLsystemthcodlass="sref">uosllftamqode=_os_typ8gt; 262unotify_ownr14las>1435 class="sreflass="sref">ie_wai"errort_wai"_qeue./a>errorhrefnme="L260"> 262attr.143y/a> out sysctlhref">llist_ntry"/a>(isig_i14ig_>143" clanfo"/a>  a href="+code=m1433" name=14tify class="sref">unotif14tif>143href="+code=m1493/a>        spin_="sr_iuosllftamq_="sref">sou"/a> 
 262sSIGEV2514/mq>143ef">mme="L260"> 262143"+code=MSTATEmqueue.c#L2646 errort_wai"_qeue./a>errorhref=uoe=slist class="mq_iuosllftai 262;*truct 143ie_wai"errort_wai"_qeue./a>errorhrefnme="L260"> 262 *iew"/a> ;out filLsystemhref">llist_ntry"/a>(143in_lock_/a>(&14cod>143UT/a>,
 26214+co>1445 clame="L260"> 262 = out filLsystemhref:me="L260"> 262144a href="+codemqueue.c#L2646 unregisterroilLsystemt_wai"_qeue./a>unregisterroilLsystemthcodlass="sref">uosllftamqode=_os_typ8gt; 262144ss="sipc/mqueue.c#L2out sysctlt_wai"_qeue./a>out sysctlhref:me="L260"> 262ctask/a> >14las>144ef">mqucurrmslass="sref">ie_wai"mq_sysctl_tab58gt; 262144"+code=MSTATEf="ipc/mmqueue.c#L2646 unregisterrsysctl_tab58gt;lomq_sysctl_tab58gt; 262 154          14L15>144lokmem_cache_a"60"oyo" class="sref"kmem_cache_a"60"oythcodclass="sref">lomqode=_i_cache class="sref">inmqode=_i_cache hrefn;me="L260"> 262iew"/a 
errorhref">llist_ntry"/a>(144in_loame="L260"> 262iew"/a14lew>144ue.c#L161" id="L261" class="l145e" name=14ueue.c#L252" id="L152" c14ueu>1455 clamqueue.c#L2646 __iloi 262 *
 *
The original LXR software by theref="ipc/mhttp://sourceforge.net/projects/lxr">LXR commulxr@an>ux.nothco.
* lxr.an>ux.no kindly hosted by ef="ipc/mhttp://www.redpill-an>pro.no">Redpill Ln>pro ASthcof"provider of Ln>ux consulting and operations services since 1995.