Looks good. Acked-by me. Can you add a "Fixes ..." line to the commit message. On Fri, 21 Apr 2023 at 02:16, Bharath SM <bharathsm.hsk@xxxxxxxxx> wrote: > > From: Bharath SM <bharathsm@xxxxxxxxxxxxx> > > cifs_del_deferred_close function has a critical section which modifies > the deferred close file list. We must acquire deferred_lock before > calling cifs_del_deferred_close function. > > Signed-off-by: Bharath SM <bharathsm@xxxxxxxxxxxxx> > --- > fs/cifs/misc.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c > index a0d286ee723d..89bbc12e2ca7 100644 > --- a/fs/cifs/misc.c > +++ b/fs/cifs/misc.c > @@ -742,7 +742,10 @@ cifs_close_deferred_file(struct cifsInodeInfo *cifs_inode) > list_for_each_entry(cfile, &cifs_inode->openFileList, flist) { > if (delayed_work_pending(&cfile->deferred)) { > if (cancel_delayed_work(&cfile->deferred)) { > + > + spin_lock(&cifs_inode->deferred_lock); > cifs_del_deferred_close(cfile); > + spin_unlock(&cifs_inode->deferred_lock); > > tmp_list = kmalloc(sizeof(struct file_list), GFP_ATOMIC); > if (tmp_list == NULL) > @@ -773,7 +776,10 @@ cifs_close_all_deferred_files(struct cifs_tcon *tcon) > list_for_each_entry(cfile, &tcon->openFileList, tlist) { > if (delayed_work_pending(&cfile->deferred)) { > if (cancel_delayed_work(&cfile->deferred)) { > + > + spin_lock(&CIFS_I(d_inode(cfile->dentry))->deferred_lock); > cifs_del_deferred_close(cfile); > + spin_unlock(&CIFS_I(d_inode(cfile->dentry))->deferred_lock); > > tmp_list = kmalloc(sizeof(struct file_list), GFP_ATOMIC); > if (tmp_list == NULL) > @@ -808,7 +814,10 @@ cifs_close_deferred_file_under_dentry(struct cifs_tcon *tcon, const char *path) > if (strstr(full_path, path)) { > if (delayed_work_pending(&cfile->deferred)) { > if (cancel_delayed_work(&cfile->deferred)) { > + > + spin_lock(&CIFS_I(d_inode(cfile->dentry))->deferred_lock); > cifs_del_deferred_close(cfile); > + spin_unlock(&CIFS_I(d_inode(cfile->dentry))->deferred_lock); > > tmp_list = kmalloc(sizeof(struct file_list), GFP_ATOMIC); > if (tmp_list == NULL) > -- > 2.34.1 >