[PATCH] ubifs: add missing ui pointer in debugging code
Artem Bityutskiy
dedekind1 at gmail.com
Tue May 27 05:28:21 PDT 2014
On Wed, 2014-05-14 at 15:32 +0800, hujianyang wrote:
> On 2014/5/14 4:27, Daniel Golle wrote:
> > If UBIFS_DEBUG is defined an additional assertion of the ui_lock
> > spinlock in do_writepage cannot compile because the ui pointer has not
> > been previously declared.
> >
> > Fix this by declaring and initializing the ui pointer in case
> > UBIFS_DEBUG is defined.
> >
> > Signed-off-by: Daniel Golle <daniel at makrotopia.org>
> > ---
> > fs/ubifs/file.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c
> > index 4f34dba..e13ec5e 100644
> > --- a/fs/ubifs/file.c
> > +++ b/fs/ubifs/file.c
> > @@ -903,6 +903,7 @@ static int do_writepage(struct page *page, int len)
> > struct ubifs_info *c = inode->i_sb->s_fs_info;
> >
> > #ifdef UBIFS_DEBUG
> > + struct ubifs_inode *ui = ubifs_inode(inode);
> > spin_lock(&ui->ui_lock);
> > ubifs_assert(page->index <= ui->synced_i_size << PAGE_CACHE_SIZE);
>
> I think here should be:
> ubifs_assert(page->index <= ui->synced_i_size >> PAGE_CACHE_SHIFT);
I think you are right, thanks. I've just applied this patch:
Author: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
Date: Tue May 27 15:24:39 2014 +0300
UBIFS: fix debugging check
The debugging check which verifies that we never write outside of the file
length was incorrect, since it was multiplying file length by the page size,
instead of dividing. Fix this.
Spotted-by: hujianyang <hujianyang at huawei.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c
index 727506b..2767ffb 100644
--- a/fs/ubifs/file.c
+++ b/fs/ubifs/file.c
@@ -905,7 +905,7 @@ static int do_writepage(struct page *page, int len)
#ifdef UBIFS_DEBUG
struct ubifs_inode *ui = ubifs_inode(inode);
spin_lock(&ui->ui_lock);
- ubifs_assert(page->index <= ui->synced_i_size << PAGE_CACHE_SIZE);
+ ubifs_assert(page->index <= ui->synced_i_size >> PAGE_CACHE_SIZE);
spin_unlock(&ui->ui_lock);
#endif
--
Best Regards,
Artem Bityutskiy
More information about the linux-mtd
mailing list