Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761779AbXKCXrU (ORCPT ); Sat, 3 Nov 2007 19:47:20 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1760003AbXKCXq6 (ORCPT ); Sat, 3 Nov 2007 19:46:58 -0400 Received: from rv-out-0910.google.com ([209.85.198.191]:28834 "EHLO rv-out-0910.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759683AbXKCXq5 (ORCPT ); Sat, 3 Nov 2007 19:46:57 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references:sender; b=C0Y3OGUrV9crOc503KpWqL8QCeRlcgEGIgU58/J4CFANnwTAAxOQW+Dn/8ekz9ogsnywyV9mPEFwafo+M2tl0BBrZg3UNp1isH3y7d4IJlJ1sn+q8FTNy8iil7yEuNWtg/ApMc7X4jld2a0ptAMjCpnIocjP3j1sHAsVBh0MBRg= From: Michael Marineau To: linux-kernel@vger.kernel.org Cc: trivial@kernel.org, Michael Marineau Subject: [PATCH, RESEND] tmpfs: fix mounts when size is less than the page size Date: Sat, 3 Nov 2007 16:46:52 -0700 Message-Id: <11941336124117-git-send-email-mike@marineau.org> X-Mailer: git-send-email 1.5.1.6 In-Reply-To: <11941279021705-git-send-email-mike@marineau.org> References: <11941279021705-git-send-email-mike@marineau.org> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1251 Lines: 35 When tmpfs is mounted with a size less than one page the number of blocks is set to 0 which makes the tmpfs mount unlimited. This can lead to a quick and surprising death is someone typos a tmpfs mount command and writes to much. tmpfs can still be mounted as unlimited if size or nr_blocks is exactly 0. Signed-off-by: Michael Marineau --- Somehow I was a moron and didn't notice the compiler shouting insults at me, here is the correct version of the patch. Sorry for the noise :-( mm/shmem.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/mm/shmem.c b/mm/shmem.c index 253d205..86b47d8 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -2138,6 +2138,8 @@ static int shmem_parse_options(char *options, int *mode, uid_t *uid, if (*rest) goto bad_val; *blocks = size >> PAGE_CACHE_SHIFT; + if (size && *blocks == 0) + *blocks = 1; } else if (!strcmp(this_char,"nr_blocks")) { *blocks = memparse(value,&rest); if (*rest) -- 1.5.1.6 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/