|
|
@@ -389,7 +389,6 @@ static void mqueue_evict_inode(struct inode *inode)
|
|
|
{
|
|
|
struct mqueue_inode_info *info;
|
|
|
struct user_struct *user;
|
|
|
- unsigned long mq_bytes, mq_treesize;
|
|
|
struct ipc_namespace *ipc_ns;
|
|
|
struct msg_msg *msg, *nmsg;
|
|
|
LIST_HEAD(tmp_msg);
|
|
|
@@ -412,16 +411,18 @@ static void mqueue_evict_inode(struct inode *inode)
|
|
|
free_msg(msg);
|
|
|
}
|
|
|
|
|
|
- /* Total amount of bytes accounted for the mqueue */
|
|
|
- mq_treesize = info->attr.mq_maxmsg * sizeof(struct msg_msg) +
|
|
|
- min_t(unsigned int, info->attr.mq_maxmsg, MQ_PRIO_MAX) *
|
|
|
- sizeof(struct posix_msg_tree_node);
|
|
|
-
|
|
|
- mq_bytes = mq_treesize + (info->attr.mq_maxmsg *
|
|
|
- info->attr.mq_msgsize);
|
|
|
-
|
|
|
user = info->user;
|
|
|
if (user) {
|
|
|
+ unsigned long mq_bytes, mq_treesize;
|
|
|
+
|
|
|
+ /* Total amount of bytes accounted for the mqueue */
|
|
|
+ mq_treesize = info->attr.mq_maxmsg * sizeof(struct msg_msg) +
|
|
|
+ min_t(unsigned int, info->attr.mq_maxmsg, MQ_PRIO_MAX) *
|
|
|
+ sizeof(struct posix_msg_tree_node);
|
|
|
+
|
|
|
+ mq_bytes = mq_treesize + (info->attr.mq_maxmsg *
|
|
|
+ info->attr.mq_msgsize);
|
|
|
+
|
|
|
spin_lock(&mq_lock);
|
|
|
user->mq_bytes -= mq_bytes;
|
|
|
/*
|