From: Chao Yu <chao2.yu@samsung.com>
To: 'Changman Lee' <cm224.lee@samsung.com>
Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-f2fs-devel@lists.sourceforge.net
Subject: Re: [PATCH] f2fs: avoid overflow when large directory feathure is enabled
Date: Tue, 27 May 2014 16:49:49 +0800 [thread overview]
Message-ID: <010701cf7988$bc218420$34648c60$@samsung.com> (raw)
In-Reply-To: <20140527062307.GB4886@cm224.lee>
Hi changman,
> -----Original Message-----
> From: Changman Lee [mailto:cm224.lee@samsung.com]
> Sent: Tuesday, May 27, 2014 2:23 PM
> To: Chao Yu
> Cc: Jaegeuk Kim; linux-fsdevel@vger.kernel.org; linux-kernel@vger.kernel.org;
> linux-f2fs-devel@lists.sourceforge.net
> Subject: Re: [f2fs-dev] [PATCH] f2fs: avoid overflow when large directory feathure is enabled
>
> Hi, Chao
> Good catch. Please, modify Documentation/filesytems/f2fs.txt
Thank you for reminding me, I will add modification of f2fs.txt in the patch later.
>
> On Tue, May 27, 2014 at 09:06:52AM +0800, Chao Yu wrote:
> > When large directory feathure is enable, We have one case which could cause
> > overflow in dir_buckets() as following:
> > special case: level + dir_level >= 32 and level < MAX_DIR_HASH_DEPTH / 2.
> >
> > Here we define MAX_DIR_BUCKETS to limit the return value when the condition
> > could trigger potential overflow.
> >
> > Signed-off-by: Chao Yu <chao2.yu@samsung.com>
> > ---
> > fs/f2fs/dir.c | 4 ++--
> > include/linux/f2fs_fs.h | 3 +++
> > 2 files changed, 5 insertions(+), 2 deletions(-)
> >
> > diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c
> > index c3f1485..966acb0 100644
> > --- a/fs/f2fs/dir.c
> > +++ b/fs/f2fs/dir.c
> > @@ -23,10 +23,10 @@ static unsigned long dir_blocks(struct inode *inode)
> >
> > static unsigned int dir_buckets(unsigned int level, int dir_level)
> > {
> > - if (level < MAX_DIR_HASH_DEPTH / 2)
> > + if (level + dir_level < MAX_DIR_HASH_DEPTH / 2)
> > return 1 << (level + dir_level);
> > else
> > - return 1 << ((MAX_DIR_HASH_DEPTH / 2 + dir_level) - 1);
> > + return MAX_DIR_BUCKETS;
> > }
> >
> > static unsigned int bucket_blocks(unsigned int level)
> > diff --git a/include/linux/f2fs_fs.h b/include/linux/f2fs_fs.h
> > index 8c03f71..ba6f312 100644
> > --- a/include/linux/f2fs_fs.h
> > +++ b/include/linux/f2fs_fs.h
> > @@ -394,6 +394,9 @@ typedef __le32 f2fs_hash_t;
> > /* MAX level for dir lookup */
> > #define MAX_DIR_HASH_DEPTH 63
> >
> > +/* MAX buckets in one level of dir */
> > +#define MAX_DIR_BUCKETS (1 << ((MAX_DIR_HASH_DEPTH / 2) - 1))
> > +
> > #define SIZE_OF_DIR_ENTRY 11 /* by byte */
> > #define SIZE_OF_DENTRY_BITMAP ((NR_DENTRY_IN_BLOCK + BITS_PER_BYTE - 1) / \
> > BITS_PER_BYTE)
> > --
> > 1.7.10.4
> >
> >
> >
> > ------------------------------------------------------------------------------
> > The best possible search technologies are now affordable for all companies.
> > Download your FREE open source Enterprise Search Engine today!
> > Our experts will assist you in its installation for $59/mo, no commitment.
> > Test it for FREE on our Cloud platform anytime!
> > http://pubads.g.doubleclick.net/gampad/clk?id=145328191&iu=/4140/ostg.clktrk
> > _______________________________________________
> > Linux-f2fs-devel mailing list
> > Linux-f2fs-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
------------------------------------------------------------------------------
The best possible search technologies are now affordable for all companies.
Download your FREE open source Enterprise Search Engine today!
Our experts will assist you in its installation for $59/mo, no commitment.
Test it for FREE on our Cloud platform anytime!
http://pubads.g.doubleclick.net/gampad/clk?id=145328191&iu=/4140/ostg.clktrk
WARNING: multiple messages have this Message-ID (diff)
From: Chao Yu <chao2.yu@samsung.com>
To: "'Changman Lee'" <cm224.lee@samsung.com>
Cc: "'Jaegeuk Kim'" <jaegeuk.kim@samsung.com>,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-f2fs-devel@lists.sourceforge.net
Subject: RE: [f2fs-dev] [PATCH] f2fs: avoid overflow when large directory feathure is enabled
Date: Tue, 27 May 2014 16:49:49 +0800 [thread overview]
Message-ID: <010701cf7988$bc218420$34648c60$@samsung.com> (raw)
In-Reply-To: <20140527062307.GB4886@cm224.lee>
Hi changman,
> -----Original Message-----
> From: Changman Lee [mailto:cm224.lee@samsung.com]
> Sent: Tuesday, May 27, 2014 2:23 PM
> To: Chao Yu
> Cc: Jaegeuk Kim; linux-fsdevel@vger.kernel.org; linux-kernel@vger.kernel.org;
> linux-f2fs-devel@lists.sourceforge.net
> Subject: Re: [f2fs-dev] [PATCH] f2fs: avoid overflow when large directory feathure is enabled
>
> Hi, Chao
> Good catch. Please, modify Documentation/filesytems/f2fs.txt
Thank you for reminding me, I will add modification of f2fs.txt in the patch later.
>
> On Tue, May 27, 2014 at 09:06:52AM +0800, Chao Yu wrote:
> > When large directory feathure is enable, We have one case which could cause
> > overflow in dir_buckets() as following:
> > special case: level + dir_level >= 32 and level < MAX_DIR_HASH_DEPTH / 2.
> >
> > Here we define MAX_DIR_BUCKETS to limit the return value when the condition
> > could trigger potential overflow.
> >
> > Signed-off-by: Chao Yu <chao2.yu@samsung.com>
> > ---
> > fs/f2fs/dir.c | 4 ++--
> > include/linux/f2fs_fs.h | 3 +++
> > 2 files changed, 5 insertions(+), 2 deletions(-)
> >
> > diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c
> > index c3f1485..966acb0 100644
> > --- a/fs/f2fs/dir.c
> > +++ b/fs/f2fs/dir.c
> > @@ -23,10 +23,10 @@ static unsigned long dir_blocks(struct inode *inode)
> >
> > static unsigned int dir_buckets(unsigned int level, int dir_level)
> > {
> > - if (level < MAX_DIR_HASH_DEPTH / 2)
> > + if (level + dir_level < MAX_DIR_HASH_DEPTH / 2)
> > return 1 << (level + dir_level);
> > else
> > - return 1 << ((MAX_DIR_HASH_DEPTH / 2 + dir_level) - 1);
> > + return MAX_DIR_BUCKETS;
> > }
> >
> > static unsigned int bucket_blocks(unsigned int level)
> > diff --git a/include/linux/f2fs_fs.h b/include/linux/f2fs_fs.h
> > index 8c03f71..ba6f312 100644
> > --- a/include/linux/f2fs_fs.h
> > +++ b/include/linux/f2fs_fs.h
> > @@ -394,6 +394,9 @@ typedef __le32 f2fs_hash_t;
> > /* MAX level for dir lookup */
> > #define MAX_DIR_HASH_DEPTH 63
> >
> > +/* MAX buckets in one level of dir */
> > +#define MAX_DIR_BUCKETS (1 << ((MAX_DIR_HASH_DEPTH / 2) - 1))
> > +
> > #define SIZE_OF_DIR_ENTRY 11 /* by byte */
> > #define SIZE_OF_DENTRY_BITMAP ((NR_DENTRY_IN_BLOCK + BITS_PER_BYTE - 1) / \
> > BITS_PER_BYTE)
> > --
> > 1.7.10.4
> >
> >
> >
> > ------------------------------------------------------------------------------
> > The best possible search technologies are now affordable for all companies.
> > Download your FREE open source Enterprise Search Engine today!
> > Our experts will assist you in its installation for $59/mo, no commitment.
> > Test it for FREE on our Cloud platform anytime!
> > http://pubads.g.doubleclick.net/gampad/clk?id=145328191&iu=/4140/ostg.clktrk
> > _______________________________________________
> > Linux-f2fs-devel mailing list
> > Linux-f2fs-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
next prev parent reply other threads:[~2014-05-27 8:50 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-27 1:06 [PATCH] f2fs: avoid overflow when large directory feathure is enabled Chao Yu
2014-05-27 1:06 ` [f2fs-dev][PATCH] " Chao Yu
2014-05-27 6:23 ` [PATCH] " Changman Lee
2014-05-27 6:23 ` [f2fs-dev] " Changman Lee
2014-05-27 8:49 ` Chao Yu [this message]
2014-05-27 8:49 ` Chao Yu
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='010701cf7988$bc218420$34648c60$@samsung.com' \
--to=chao2.yu@samsung.com \
--cc=cm224.lee@samsung.com \
--cc=linux-f2fs-devel@lists.sourceforge.net \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/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.