@@ -147,7 +147,7 @@ struct dentry_operations {
147147 struct vfsmount * (* d_automount )(struct path * );
148148 int (* d_manage )(const struct path * , bool );
149149 struct dentry * (* d_real )(struct dentry * , const struct inode * ,
150- unsigned int );
150+ unsigned int , unsigned int );
151151} ____cacheline_aligned ;
152152
153153/*
@@ -566,7 +566,8 @@ static inline struct dentry *d_backing_dentry(struct dentry *upper)
566566 * d_real - Return the real dentry
567567 * @dentry: the dentry to query
568568 * @inode: inode to select the dentry from multiple layers (can be NULL)
569- * @flags: open flags to control copy-up behavior
569+ * @open_flags: open flags to control copy-up behavior
570+ * @flags: flags to control what is returned by this function
570571 *
571572 * If dentry is on a union/overlay, then return the underlying, real dentry.
572573 * Otherwise return the dentry itself.
@@ -575,10 +576,10 @@ static inline struct dentry *d_backing_dentry(struct dentry *upper)
575576 */
576577static inline struct dentry * d_real (struct dentry * dentry ,
577578 const struct inode * inode ,
578- unsigned int flags )
579+ unsigned int open_flags , unsigned int flags )
579580{
580581 if (unlikely (dentry -> d_flags & DCACHE_OP_REAL ))
581- return dentry -> d_op -> d_real (dentry , inode , flags );
582+ return dentry -> d_op -> d_real (dentry , inode , open_flags , flags );
582583 else
583584 return dentry ;
584585}
@@ -593,7 +594,7 @@ static inline struct dentry *d_real(struct dentry *dentry,
593594static inline struct inode * d_real_inode (const struct dentry * dentry )
594595{
595596 /* This usage of d_real() results in const dentry */
596- return d_backing_inode (d_real ((struct dentry * ) dentry , NULL , 0 ));
597+ return d_backing_inode (d_real ((struct dentry * ) dentry , NULL , 0 , 0 ));
597598}
598599
599600struct name_snapshot {
0 commit comments