Re: [PATCH] cifs: Use file_dentry()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux