merged into cifs-2.6.git On Wed, Apr 20, 2016 at 11:21 PM, Shirish Pargaonkar <shirishpargaonkar@xxxxxxxxx> wrote: > Looks correct. > > Acked-by: Shirish Pargaonkar <shirishpargaonkar@xxxxxxxxx> > > On Mon, Apr 18, 2016 at 6:41 AM, Goldwyn Rodrigues <rgoldwyn@xxxxxxx> wrote: >> From: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx> >> >> CIFS may be used as lower layer of overlayfs and accessing f_path.dentry can >> lead to a crash. >> >> Fix by replacing direct access of file->f_path.dentry with the >> file_dentry() accessor, which will always return a native object. >> >> Signed-off-by: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx> >> >> diff --git a/fs/cifs/file.c b/fs/cifs/file.c >> index c03d074..489ddc7 100644 >> --- a/fs/cifs/file.c >> +++ b/fs/cifs/file.c >> @@ -271,7 +271,7 @@ struct cifsFileInfo * >> cifs_new_fileinfo(struct cifs_fid *fid, struct file *file, >> struct tcon_link *tlink, __u32 oplock) >> { >> - struct dentry *dentry = file->f_path.dentry; >> + struct dentry *dentry = file_dentry(file); >> struct inode *inode = d_inode(dentry); >> struct cifsInodeInfo *cinode = CIFS_I(inode); >> struct cifsFileInfo *cfile; >> @@ -461,7 +461,7 @@ int cifs_open(struct inode *inode, struct file *file) >> tcon = tlink_tcon(tlink); >> server = tcon->ses->server; >> >> - full_path = build_path_from_dentry(file->f_path.dentry); >> + full_path = build_path_from_dentry(file_dentry(file)); >> if (full_path == NULL) { >> rc = -ENOMEM; >> goto out; >> diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c >> index b30a4a6..8806584 100644 >> --- a/fs/cifs/readdir.c >> +++ b/fs/cifs/readdir.c >> @@ -300,7 +300,7 @@ initiate_cifs_search(const unsigned int xid, struct file *file) >> cifsFile->invalidHandle = true; >> cifsFile->srch_inf.endOfSearch = false; >> >> - full_path = build_path_from_dentry(file->f_path.dentry); >> + full_path = build_path_from_dentry(file_dentry(file)); >> if (full_path == NULL) { >> rc = -ENOMEM; >> goto error_exit; >> @@ -759,7 +759,7 @@ static int cifs_filldir(char *find_entry, struct file *file, >> */ >> fattr.cf_flags |= CIFS_FATTR_NEED_REVAL; >> >> - cifs_prime_dcache(file->f_path.dentry, &name, &fattr); >> + cifs_prime_dcache(file_dentry(file), &name, &fattr); >> >> ino = cifs_uniqueid_to_ino_t(fattr.cf_uniqueid); >> return !dir_emit(ctx, name.name, name.len, ino, fattr.cf_dtype); >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-cifs" in >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html > -- > To unsubscribe from this list: send the line "unsubscribe linux-cifs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Thanks, Steve -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html