Re: [159/244] ipc/mqueue.c: fix mq_open() return value

From: Greg KH
Date: Thu Sep 29 2011 - 14:45:52 EST


On Thu, Sep 29, 2011 at 11:41:18AM -0400, Doug Ledford wrote:
> ----- Original Message -----
> > 3.0-stable review patch. If anyone has any objections, please let us
> > know.
> >
>
> @@ -160,6 +161,7 @@ static struct inode *mqueue_get_inode(st
> u->mq_bytes + mq_bytes > task_rlimit(p, RLIMIT_MSGQUEUE)) {
> spin_unlock(&mq_lock);
> /* mqueue_evict_inode() releases info->messages */
> + ret = -EMFILE;
> goto out_inode;
> }
> u->mq_bytes += mq_bytes;
>
> NACK to this portion of the patch. The test is for the total bytes
> allocated, and the RLIMIT is for bytes allocated. This can happen on
> one file or on the hundredth file. It isn't a file error, it's a
> memory error and should remain such. If you want to accurately return
> the right error, then you need new_inode() to return an
> ERR_PTR(EMFILE) in the case that the number of message queues in the
> namespace is exceeded and propagate that back up, but as
> mqueue_get_inode() really only checks memory issues, not queue count
> issues, the only return it should generate is ENOMEM.

Um, that's the way this patch is upstream, right? So perhaps it should
be fixed there first and then I can take the fix into -stable?

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/