CC: [email protected]
BCC: [email protected]
In-Reply-To: <[email protected]>
References: <[email protected]>
TO: Liang Chen <[email protected]>
TO: [email protected]
CC: [email protected]
CC: [email protected]
CC: [email protected]
CC: [email protected]
CC: Liang Chen <[email protected]>

Hi Liang,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on axboe-block/for-next]
[also build test WARNING on v5.18-rc5 next-20220506]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/intel-lab-lkp/linux/commits/Liang-Chen/fs-Fix-page-cache-inconsistency-when-mixing-buffered-and-AIO-DIO-for-bdev/20220506-215958
base:   https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git 
for-next
:::::: branch date: 6 hours ago
:::::: commit date: 6 hours ago
config: i386-randconfig-c001 
(https://download.01.org/0day-ci/archive/20220507/[email protected]/config)
compiler: gcc-11 (Debian 11.2.0-20) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Julia Lawall <[email protected]>


cocci warnings: (new ones prefixed by >>)
>> block/fops.c:177:5-24: atomic_dec_and_test variation before object free at 
>> line 185.

vim +177 block/fops.c

2b2bda510e6c93 Liang Chen        2022-05-06  168  
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  169  static void 
blkdev_bio_end_io(struct bio *bio)
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  170  {
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  171        struct blkdev_dio *dio 
= bio->bi_private;
09ce8744253a03 Jens Axboe        2021-10-14  172        bool should_dirty = 
dio->flags & DIO_SHOULD_DIRTY;
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  173  
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  174        if (bio->bi_status && 
!dio->bio.bi_status)
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  175                
dio->bio.bi_status = bio->bi_status;
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  176  
e71aa913e26543 Pavel Begunkov    2021-10-27 @177        if 
(atomic_dec_and_test(&dio->ref)) {
09ce8744253a03 Jens Axboe        2021-10-14  178                if 
(!(dio->flags & DIO_IS_SYNC)) {
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  179                        struct 
kiocb *iocb = dio->iocb;
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  180                        ssize_t 
ret;
2b2bda510e6c93 Liang Chen        2022-05-06  181                        struct 
inode *inode = bdev_file_inode(iocb->ki_filp);
2b2bda510e6c93 Liang Chen        2022-05-06  182  
2b2bda510e6c93 Liang Chen        2022-05-06  183                        if 
(iocb->ki_flags & IOCB_WRITE){
2b2bda510e6c93 Liang Chen        2022-05-06  184                                
INIT_WORK(&dio->complete_work, blkdev_aio_complete_work);
2b2bda510e6c93 Liang Chen        2022-05-06 @185                                
queue_work(inode->i_sb->s_dio_done_wq,
2b2bda510e6c93 Liang Chen        2022-05-06  186                                
                &dio->complete_work);
2b2bda510e6c93 Liang Chen        2022-05-06  187                                
goto out;
2b2bda510e6c93 Liang Chen        2022-05-06  188                        }
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  189  
3e08773c3841e9 Christoph Hellwig 2021-10-12  190                        
WRITE_ONCE(iocb->private, NULL);
3e08773c3841e9 Christoph Hellwig 2021-10-12  191  
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  192                        if 
(likely(!dio->bio.bi_status)) {
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  193                                
ret = dio->size;
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  194                                
iocb->ki_pos += ret;
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  195                        } else {
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  196                                
ret = blk_status_to_errno(dio->bio.bi_status);
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  197                        }
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  198  
6b19b766e8f077 Jens Axboe        2021-10-21  199                        
dio->iocb->ki_complete(iocb, ret);
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  200                        
bio_put(&dio->bio);
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  201                } else {
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  202                        struct 
task_struct *waiter = dio->waiter;
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  203  
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  204                        
WRITE_ONCE(dio->waiter, NULL);
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  205                        
blk_wake_io_task(waiter);
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  206                }
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  207        }
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  208  
2b2bda510e6c93 Liang Chen        2022-05-06  209  out:
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  210        if (should_dirty) {
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  211                
bio_check_pages_dirty(bio);
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  212        } else {
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  213                
bio_release_pages(bio, false);
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  214                bio_put(bio);
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  215        }
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  216  }
cd82cca7ebfe9c Christoph Hellwig 2021-09-07  217  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to