diff options
author | Goldwyn Rodrigues <rgoldwyn@suse.com> | 2016-04-18 06:41:52 -0500 |
---|---|---|
committer | Steve French <smfrench@gmail.com> | 2016-05-17 14:09:33 -0500 |
commit | 1f1735cb75ab31ed948a7fce65beaaa6c0ed4ed4 (patch) | |
tree | 35d88237f7ab55df1bf394d5c214185c2be03bd0 /fs/cifs/file.c | |
parent | 7f427d3a6029331304f91ef4d7cf646f054216d2 (diff) | |
download | blackbird-op-linux-1f1735cb75ab31ed948a7fce65beaaa6c0ed4ed4.tar.gz blackbird-op-linux-1f1735cb75ab31ed948a7fce65beaaa6c0ed4ed4.zip |
cifs: Use file_dentry()
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@suse.com>
Acked-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com>
Signed-off-by: Steve French <smfrench@gmail.com>
Diffstat (limited to 'fs/cifs/file.c')
-rw-r--r-- | fs/cifs/file.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/cifs/file.c b/fs/cifs/file.c index c03d0744648b..489ddc797105 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; |