All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: npiggin@suse.de
Cc: linux-mm@kvack.org
Subject: Re: [patch 20/21] fs: check for statfs overflow
Date: Sun, 8 Jun 2008 12:06:45 -0700	[thread overview]
Message-ID: <20080608120645.270bc581.akpm@linux-foundation.org> (raw)
In-Reply-To: <20080604113113.523542750@amd.local0.net>

On Wed, 04 Jun 2008 21:29:59 +1000 npiggin@suse.de wrote:

> Adds a check for an overflow in the filesystem size so if someone is
> checking with statfs() on a 16G hugetlbfs in a 32bit binary that it
> will report back EOVERFLOW instead of a size of 0.

-ENOUNDERSTAND.

Why won't a 16G filesystem work on a 32-bit binary?

> Acked-by: Nishanth Aravamudan <nacc@us.ibm.com>
> Signed-off-by: Jon Tollefson <kniht@linux.vnet.ibm.com>
> Signed-off-by: Nick Piggin <npiggin@suse.de>
> ---
> 
>  fs/compat.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> 
> Index: linux-2.6/fs/compat.c
> ===================================================================
> --- linux-2.6.orig/fs/compat.c	2008-06-04 20:47:31.000000000 +1000
> +++ linux-2.6/fs/compat.c	2008-06-04 20:51:28.000000000 +1000
> @@ -197,8 +197,8 @@ static int put_compat_statfs(struct comp
>  {
>  	
>  	if (sizeof ubuf->f_blocks == 4) {
> -		if ((kbuf->f_blocks | kbuf->f_bfree | kbuf->f_bavail) &
> -		    0xffffffff00000000ULL)
> +		if ((kbuf->f_blocks | kbuf->f_bfree | kbuf->f_bavail |
> +		     kbuf->f_bsize | kbuf->f_frsize) & 0xffffffff00000000ULL)
>  			return -EOVERFLOW;
>  		/* f_files and f_ffree may be -1; it's okay
>  		 * to stuff that into 32 bits */
> @@ -271,8 +271,8 @@ out:
>  static int put_compat_statfs64(struct compat_statfs64 __user *ubuf, struct kstatfs *kbuf)
>  {
>  	if (sizeof ubuf->f_blocks == 4) {
> -		if ((kbuf->f_blocks | kbuf->f_bfree | kbuf->f_bavail) &
> -		    0xffffffff00000000ULL)
> +		if ((kbuf->f_blocks | kbuf->f_bfree | kbuf->f_bavail |
> +		     kbuf->f_bsize | kbuf->f_frsize) & 0xffffffff00000000ULL)
>  			return -EOVERFLOW;
>  		/* f_files and f_ffree may be -1; it's okay
>  		 * to stuff that into 32 bits */
> Index: linux-2.6/fs/open.c
> ===================================================================
> --- linux-2.6.orig/fs/open.c	2008-06-04 20:47:31.000000000 +1000
> +++ linux-2.6/fs/open.c	2008-06-04 20:51:28.000000000 +1000
> @@ -63,7 +63,8 @@ static int vfs_statfs_native(struct dent
>  		memcpy(buf, &st, sizeof(st));
>  	else {
>  		if (sizeof buf->f_blocks == 4) {
> -			if ((st.f_blocks | st.f_bfree | st.f_bavail) &
> +			if ((st.f_blocks | st.f_bfree | st.f_bavail |
> +			     st.f_bsize | st.f_frsize) &
>  			    0xffffffff00000000ULL)
>  				return -EOVERFLOW;
>  			/*
> 
> -- 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2008-06-08 19:06 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-04 11:29 [patch 00/21] hugetlb patches resend npiggin
2008-06-04 11:29 ` [patch 01/21] hugetlb: factor out prep_new_huge_page npiggin
2008-06-04 11:29 ` [patch 02/21] hugetlb: modular state for hugetlb page size npiggin
2008-06-04 11:29 ` [patch 03/21] hugetlb: multiple hstates for multiple page sizes npiggin
2008-06-04 11:29 ` [patch 04/21] hugetlbfs: per mount huge " npiggin
2008-06-04 11:29 ` [patch 05/21] hugetlb: new sysfs interface npiggin
2008-06-08 18:59   ` Andrew Morton
2008-06-10  3:02     ` Nick Piggin
2008-06-12  1:11       ` Nishanth Aravamudan
2008-07-02  0:24         ` Nishanth Aravamudan
2008-06-20 15:18   ` Dave Hansen
2008-06-23  2:48     ` Nick Piggin
2008-06-23  3:31       ` Andrew Morton
2008-06-23  3:52         ` Nick Piggin
2008-06-04 11:29 ` [patch 06/21] hugetlb: abstract numa round robin selection npiggin
2008-06-04 11:29 ` [patch 07/21] mm: introduce non panic alloc_bootmem npiggin
2008-06-04 11:29 ` [patch 08/21] mm: export prep_compound_page to mm npiggin
2008-06-04 11:29 ` [patch 09/21] hugetlb: support larger than MAX_ORDER npiggin
2008-06-04 11:29 ` [patch 10/21] hugetlb: support boot allocate different sizes npiggin
2008-06-04 11:29 ` [patch 11/21] hugetlb: printk cleanup npiggin
2008-06-04 11:29 ` [patch 12/21] hugetlb: introduce pud_huge npiggin
2008-06-11 23:16   ` Andrew Morton
2008-06-12  0:45     ` Nick Piggin
2008-06-04 11:29 ` [patch 13/21] x86: support GB hugepages on 64-bit npiggin
2008-06-04 11:29 ` [patch 14/21] x86: add hugepagesz option " npiggin
2008-06-04 17:51   ` Randy Dunlap
2008-06-05  2:01     ` Nick Piggin
2008-06-04 11:29 ` [patch 15/21] hugetlb: override default huge page size npiggin
2008-06-09 10:41   ` Andrew Morton
2008-06-10  3:22     ` Nick Piggin
2008-06-04 11:29 ` [patch 16/21] hugetlb: allow arch overried hugepage allocation npiggin
2008-06-08 19:14   ` Andrew Morton
2008-06-10  3:26     ` Nick Piggin
2008-06-12  8:08     ` Andy Whitcroft
2008-06-04 11:29 ` [patch 17/21] powerpc: function to allocate gigantic hugepages npiggin
2008-06-04 11:29 ` [patch 18/21] powerpc: scan device tree for gigantic pages npiggin
2008-06-04 11:29 ` [patch 19/21] powerpc: define support for 16G hugepages npiggin
2008-06-08 19:05   ` Andrew Morton
2008-06-10  3:05     ` Nick Piggin
2008-06-04 11:29 ` [patch 20/21] fs: check for statfs overflow npiggin
2008-06-08 19:06   ` Andrew Morton [this message]
2008-06-10  3:12     ` Nick Piggin
2008-06-04 11:30 ` [patch 21/21] powerpc: support multiple hugepage sizes npiggin
2008-07-14 16:32   ` [patch] powerpc: hugetlb pgtable cache access cleanup Jon Tollefson
2008-07-14 16:32     ` Jon Tollefson
2008-07-14 22:56     ` Andrew Morton
2008-07-14 22:56       ` Andrew Morton
2008-07-15 22:49       ` [patch v2] " Jon Tollefson
2008-07-15 22:49         ` Jon Tollefson
2008-07-15 22:57         ` Andrew Morton
2008-07-15 22:57           ` Andrew Morton
  -- strict thread matches above, loose matches on Subject: below --
2008-06-03  9:59 [patch 00/21] hugetlb multi size, giant hugetlb support, etc npiggin
2008-06-03 10:00 ` [patch 20/21] fs: check for statfs overflow npiggin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080608120645.270bc581.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=linux-mm@kvack.org \
    --cc=npiggin@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.