lkml.org 
[lkml]   [2010]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH tip/core/rcu 07/13] vfs: apply lockdep-based checking to rcu_dereference() uses
    From
    Date
    On Thu, 2010-02-11 at 16:00 -0800, Paul E. McKenney wrote:
    >
    > -#define files_fdtable(files) (rcu_dereference((files)->fdt))
    > +#define files_fdtable(files) \
    > + (rcu_dereference_check((files)->fdt, \
    > + rcu_read_lock_held() || \
    > + lockdep_is_held(&(files)->file_lock) ||
    > \
    > + atomic_read(&files->count) == 1))
    >
    > struct file_operations;
    > struct vfsmount;
    > @@ -78,7 +82,7 @@ static inline struct file * fcheck_files(struct files_struct *files, unsigned in
    > struct fdtable *fdt = files_fdtable(files);
    >
    > if (fd < fdt->max_fds)
    > - file = rcu_dereference(fdt->fd[fd]);
    > + file = rcu_dereference_check(fdt->fd[fd], rcu_read_lock_held() || lockdep_is_held(&files->file_lock) || atomic_read(&files->count) == 1);
    > return file;

    I'm almost thinking you can do something smart here and not replicate
    that condition :-)




    \
     
     \ /
      Last update: 2010-02-14 11:15    [W:0.020 / U:94.752 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site