Messages in this thread | | | Date | Sat, 19 Jul 2008 14:28:06 -0400 | From | Yoshinori Sato <> | Subject | Re: [PATCH] filldir write data missing size |
| |
At Sun, 20 Jul 2008 02:24:28 +0900, OGAWA Hirofumi wrote: > > Yoshinori Sato <ysato@users.sourceforge.jp> writes: > > > "loff_t" is long long. > > But "d_off" is unsigned long. > > > > Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> > > > > diff --git a/fs/readdir.c b/fs/readdir.c > > index 4e026e5..01e7152 > > --- a/fs/readdir.c > > +++ b/fs/readdir.c > > @@ -159,7 +159,7 @@ static int filldir(void * __buf, const char * name, int namlen, loff_t offset, > > return -EOVERFLOW; > > dirent = buf->previous; > > if (dirent) { > > - if (__put_user(offset, &dirent->d_off)) > > + if (__put_user((unsigned long)offset, &dirent->d_off)) > > Um.. __put_user() should be already doing it automatically..
I'm mistake.
I checked object, and found bad code. This problem fix __put_user. Thanks.
> > goto efault; > > } > > dirent = buf->current_dir; > -- > OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
-- Yoshinori Sato <ysato@users.sourceforge.jp>
| |