Li, please find following line of code where the error occurred.

    594     filp->f_op = &inotify_fops;
    595     filp->f_path.mnt = mntget(inotify_mnt);
    596     filp->f_path.dentry = dget(inotify_mnt->mnt_root);
    597     filp->f_mapping = filp->f_path.dentry->d_inode->i_mapping;
    598     filp->f_mode = FMODE_READ;
    599     filp->f_flags = O_RDONLY;
    600     filp->private_data = dev;

    697 static int
    698 inotify_get_sb(struct file_system_type *fs_type, int flags,
    699            const char *dev_name, void *data, struct vfsmount *mnt)
    700 {
    701     return get_sb_pseudo(fs_type, "inotify", NULL, 0xBAD1DEA, mnt);
    702 }
    703
    704 static struct file_system_type inotify_fs_type = {
    705     .name           = "inotifyfs",
    706     .get_sb         = inotify_get_sb,
    707     .kill_sb        = kill_anon_super,
    708 };


Regards,
-NVN



On Tue, Jun 10, 2008 at 5:20 PM, naveen penumala <[EMAIL PROTECTED]>
wrote:

> Hi Li,
>
> when I applied this patch to the kernel following error occurred.
>
> fs/inotify_user.c: In function âsys_inotify_initâ:
> fs/inotify_user.c:594: warning: assignment discards qualifiers from pointer
> target type
> fs/inotify_user.c:595: error: âstruct fileâ has no member named âf_pathâ
> fs/inotify_user.c:596: error: âstruct fileâ has no member named âf_pathâ
> fs/inotify_user.c:597: error: âstruct fileâ has no member named âf_pathâ
> fs/inotify_user.c: In function âinotify_get_sbâ:
> fs/inotify_user.c:701: error: too many arguments to function
> âget_sb_pseudoâ
> fs/inotify_user.c:701: warning: return makes integer from pointer without a
> cast
> fs/inotify_user.c: At top level:
> fs/inotify_user.c:706: warning: initialization from incompatible pointer
> type
> make[1]: *** [fs/inotify_user.o] Error 1
> make: *** [fs] Error 2
>
> regards,
> NVN
>
>
>
> On Tue, Jun 10, 2008 at 11:54 AM, Li Zefan <[EMAIL PROTECTED]> wrote:
>
>> naveen penumala wrote:
>> > Hi...
>> >
>> > Here i'm using SUSE 10.1, and I tested my kernel(2.6.16.21) using
>> latest LTP
>> > tool. I found that inotify02 test case was failed. It never failed in my
>> > system. I have checked in LTP mailing list and I noticed that it is
>> failed
>> > in older kernel when tested with the new LTP.
>> >
>> > can you please tell me the kernel patch file for inotify. so that I can
>> try
>> > in my system. Please help me regarding this.
>> >
>>
>> This one:
>>
>> commit 1c17d18e3775485bf1e0ce79575eb637a94494a2
>> Author: Yan Zheng <[EMAIL PROTECTED]>
>> Date:   Wed Feb 6 01:36:09 2008 -0800
>>
>>    A potential bug in inotify_user.c
>>
>>    Following comment is at fs/inotify_user.c:287
>>    /* coalescing: drop this event if it is a dupe of the previous */
>>
>>    I think the previous event in the comment should be the last event in
>> the
>>    link list.  But inotify_dev_get_event return the first event in the
>> list.
>>    In addition, it doesn't check whether the list is empty
>>
>>    Signed-off-by: Yan Zheng<[EMAIL PROTECTED]>
>>    Acked-by: Robert Love <[EMAIL PROTECTED]>
>>    Cc: John McCutchan <[EMAIL PROTECTED]>
>>    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
>>    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
>>
>> diff --git a/fs/inotify_user.c b/fs/inotify_user.c
>> index 5e00933..c509a81 100644
>> --- a/fs/inotify_user.c
>> +++ b/fs/inotify_user.c
>> @@ -248,6 +248,19 @@ inotify_dev_get_event(struct inotify_device *dev)
>>  }
>>
>>  /*
>> + * inotify_dev_get_last_event - return the last event in the given dev's
>> queue
>> + *
>> + * Caller must hold dev->ev_mutex.
>> + */
>> +static inline struct inotify_kernel_event *
>> +inotify_dev_get_last_event(struct inotify_device *dev)
>> +{
>> +       if (list_empty(&dev->events))
>> +               return NULL;
>> +       return list_entry(dev->events.prev, struct inotify_kernel_event,
>> list);
>> +}
>> +
>> +/*
>>  * inotify_dev_queue_event - event handler registered with core inotify,
>> adds
>>  * a new event to the given device
>>  *
>> @@ -273,7 +286,7 @@ static void inotify_dev_queue_event(struct
>> inotify_watch *w, u32 wd, u32 mask,
>>                put_inotify_watch(w); /* final put */
>>
>>        /* coalescing: drop this event if it is a dupe of the previous */
>> -       last = inotify_dev_get_event(dev);
>> +       last = inotify_dev_get_last_event(dev);
>>        if (last && last->event.mask == mask && last->event.wd == wd &&
>>                        last->event.cookie == cookie) {
>>                const char *lastname = last->name;
>>
>>
>> > 1. inotify02                                 FAIL       1
>> >  inotify02   10  FAIL  :  get unnecessary event: wd=1 mask=800 cookie=0
>> > len=0name=")
>> >
>> >
>> > Regards,
>> > NVN
>> >
>>
>
>
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to