On 2022/5/10 5:16, Andrew Morton wrote: > On Mon, 9 May 2022 21:14:11 +0800 Miaohe Lin <linmiaohe@xxxxxxxxxx> wrote: > >> We can break the loop if matching device is found to save some possible >> cpu cycles because there should be only one matching device and there is >> no need to continue if the matching one is already found. >> >> ... >> >> --- a/mm/swapfile.c >> +++ b/mm/swapfile.c >> @@ -1692,6 +1692,8 @@ int swap_type_of(dev_t device, sector_t offset) >> spin_unlock(&swap_lock); >> return type; >> } >> + >> + break; >> } >> } >> spin_unlock(&swap_lock); > > Are you sure? If we have two S_ISREG swapfiles on the same device, > don't they have the same sis->bdev? Oh, I missed this use case. Sorry about it! :( > > If not, why bother passing `offset' into this function at all? Yes, you're right. 'offset' indicates the swap header location. Will drop this patch. Thanks! > . >