Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

nilfs2: convert cpfile to use kmap_local

Convert all remaining usages of kmap_atomic in cpfile to kmap_local.

Link: https://lkml.kernel.org/r/20240122140202.6950-16-konishi.ryusuke@gmail.com
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Ryusuke Konishi and committed by
Andrew Morton
5eccc067 78ce4915

+45 -45
+45 -45
fs/nilfs2/cpfile.c
··· 460 460 continue; 461 461 } 462 462 463 - kaddr = kmap_atomic(cp_bh->b_page); 463 + kaddr = kmap_local_page(cp_bh->b_page); 464 464 cp = nilfs_cpfile_block_get_checkpoint( 465 465 cpfile, cno, cp_bh, kaddr); 466 466 nicps = 0; ··· 482 482 cpfile, cp_bh, kaddr, nicps); 483 483 if (count == 0) { 484 484 /* make hole */ 485 - kunmap_atomic(kaddr); 485 + kunmap_local(kaddr); 486 486 brelse(cp_bh); 487 487 ret = 488 488 nilfs_cpfile_delete_checkpoint_block( ··· 497 497 } 498 498 } 499 499 500 - kunmap_atomic(kaddr); 500 + kunmap_local(kaddr); 501 501 brelse(cp_bh); 502 502 } 503 503 504 504 if (tnicps > 0) { 505 - kaddr = kmap_atomic(header_bh->b_page); 505 + kaddr = kmap_local_page(header_bh->b_page); 506 506 header = nilfs_cpfile_block_get_header(cpfile, header_bh, 507 507 kaddr); 508 508 le64_add_cpu(&header->ch_ncheckpoints, -(u64)tnicps); 509 509 mark_buffer_dirty(header_bh); 510 510 nilfs_mdt_mark_dirty(cpfile); 511 - kunmap_atomic(kaddr); 511 + kunmap_local(kaddr); 512 512 } 513 513 514 514 brelse(header_bh); ··· 560 560 } 561 561 ncps = nilfs_cpfile_checkpoints_in_block(cpfile, cno, cur_cno); 562 562 563 - kaddr = kmap_atomic(bh->b_page); 563 + kaddr = kmap_local_page(bh->b_page); 564 564 cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, bh, kaddr); 565 565 for (i = 0; i < ncps && n < nci; i++, cp = (void *)cp + cpsz) { 566 566 if (!nilfs_checkpoint_invalid(cp)) { ··· 570 570 n++; 571 571 } 572 572 } 573 - kunmap_atomic(kaddr); 573 + kunmap_local(kaddr); 574 574 brelse(bh); 575 575 } 576 576 ··· 604 604 ret = nilfs_cpfile_get_header_block(cpfile, &bh); 605 605 if (ret < 0) 606 606 goto out; 607 - kaddr = kmap_atomic(bh->b_page); 607 + kaddr = kmap_local_page(bh->b_page); 608 608 header = nilfs_cpfile_block_get_header(cpfile, bh, kaddr); 609 609 curr = le64_to_cpu(header->ch_snapshot_list.ssl_next); 610 - kunmap_atomic(kaddr); 610 + kunmap_local(kaddr); 611 611 brelse(bh); 612 612 if (curr == 0) { 613 613 ret = 0; ··· 625 625 ret = 0; /* No snapshots (started from a hole block) */ 626 626 goto out; 627 627 } 628 - kaddr = kmap_atomic(bh->b_page); 628 + kaddr = kmap_local_page(bh->b_page); 629 629 while (n < nci) { 630 630 cp = nilfs_cpfile_block_get_checkpoint(cpfile, curr, bh, kaddr); 631 631 curr = ~(__u64)0; /* Terminator */ ··· 641 641 642 642 next_blkoff = nilfs_cpfile_get_blkoff(cpfile, next); 643 643 if (curr_blkoff != next_blkoff) { 644 - kunmap_atomic(kaddr); 644 + kunmap_local(kaddr); 645 645 brelse(bh); 646 646 ret = nilfs_cpfile_get_checkpoint_block(cpfile, next, 647 647 0, &bh); ··· 649 649 WARN_ON(ret == -ENOENT); 650 650 goto out; 651 651 } 652 - kaddr = kmap_atomic(bh->b_page); 652 + kaddr = kmap_local_page(bh->b_page); 653 653 } 654 654 curr = next; 655 655 curr_blkoff = next_blkoff; 656 656 } 657 - kunmap_atomic(kaddr); 657 + kunmap_local(kaddr); 658 658 brelse(bh); 659 659 *cnop = curr; 660 660 ret = n; ··· 763 763 ret = nilfs_cpfile_get_checkpoint_block(cpfile, cno, 0, &cp_bh); 764 764 if (ret < 0) 765 765 goto out_sem; 766 - kaddr = kmap_atomic(cp_bh->b_page); 766 + kaddr = kmap_local_page(cp_bh->b_page); 767 767 cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, cp_bh, kaddr); 768 768 if (nilfs_checkpoint_invalid(cp)) { 769 769 ret = -ENOENT; 770 - kunmap_atomic(kaddr); 770 + kunmap_local(kaddr); 771 771 goto out_cp; 772 772 } 773 773 if (nilfs_checkpoint_snapshot(cp)) { 774 774 ret = 0; 775 - kunmap_atomic(kaddr); 775 + kunmap_local(kaddr); 776 776 goto out_cp; 777 777 } 778 - kunmap_atomic(kaddr); 778 + kunmap_local(kaddr); 779 779 780 780 ret = nilfs_cpfile_get_header_block(cpfile, &header_bh); 781 781 if (ret < 0) 782 782 goto out_cp; 783 - kaddr = kmap_atomic(header_bh->b_page); 783 + kaddr = kmap_local_page(header_bh->b_page); 784 784 header = nilfs_cpfile_block_get_header(cpfile, header_bh, kaddr); 785 785 list = &header->ch_snapshot_list; 786 786 curr_bh = header_bh; ··· 792 792 prev_blkoff = nilfs_cpfile_get_blkoff(cpfile, prev); 793 793 curr = prev; 794 794 if (curr_blkoff != prev_blkoff) { 795 - kunmap_atomic(kaddr); 795 + kunmap_local(kaddr); 796 796 brelse(curr_bh); 797 797 ret = nilfs_cpfile_get_checkpoint_block(cpfile, curr, 798 798 0, &curr_bh); 799 799 if (ret < 0) 800 800 goto out_header; 801 - kaddr = kmap_atomic(curr_bh->b_page); 801 + kaddr = kmap_local_page(curr_bh->b_page); 802 802 } 803 803 curr_blkoff = prev_blkoff; 804 804 cp = nilfs_cpfile_block_get_checkpoint( ··· 806 806 list = &cp->cp_snapshot_list; 807 807 prev = le64_to_cpu(list->ssl_prev); 808 808 } 809 - kunmap_atomic(kaddr); 809 + kunmap_local(kaddr); 810 810 811 811 if (prev != 0) { 812 812 ret = nilfs_cpfile_get_checkpoint_block(cpfile, prev, 0, ··· 818 818 get_bh(prev_bh); 819 819 } 820 820 821 - kaddr = kmap_atomic(curr_bh->b_page); 821 + kaddr = kmap_local_page(curr_bh->b_page); 822 822 list = nilfs_cpfile_block_get_snapshot_list( 823 823 cpfile, curr, curr_bh, kaddr); 824 824 list->ssl_prev = cpu_to_le64(cno); 825 - kunmap_atomic(kaddr); 825 + kunmap_local(kaddr); 826 826 827 - kaddr = kmap_atomic(cp_bh->b_page); 827 + kaddr = kmap_local_page(cp_bh->b_page); 828 828 cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, cp_bh, kaddr); 829 829 cp->cp_snapshot_list.ssl_next = cpu_to_le64(curr); 830 830 cp->cp_snapshot_list.ssl_prev = cpu_to_le64(prev); 831 831 nilfs_checkpoint_set_snapshot(cp); 832 - kunmap_atomic(kaddr); 832 + kunmap_local(kaddr); 833 833 834 - kaddr = kmap_atomic(prev_bh->b_page); 834 + kaddr = kmap_local_page(prev_bh->b_page); 835 835 list = nilfs_cpfile_block_get_snapshot_list( 836 836 cpfile, prev, prev_bh, kaddr); 837 837 list->ssl_next = cpu_to_le64(cno); 838 - kunmap_atomic(kaddr); 838 + kunmap_local(kaddr); 839 839 840 - kaddr = kmap_atomic(header_bh->b_page); 840 + kaddr = kmap_local_page(header_bh->b_page); 841 841 header = nilfs_cpfile_block_get_header(cpfile, header_bh, kaddr); 842 842 le64_add_cpu(&header->ch_nsnapshots, 1); 843 - kunmap_atomic(kaddr); 843 + kunmap_local(kaddr); 844 844 845 845 mark_buffer_dirty(prev_bh); 846 846 mark_buffer_dirty(curr_bh); ··· 881 881 ret = nilfs_cpfile_get_checkpoint_block(cpfile, cno, 0, &cp_bh); 882 882 if (ret < 0) 883 883 goto out_sem; 884 - kaddr = kmap_atomic(cp_bh->b_page); 884 + kaddr = kmap_local_page(cp_bh->b_page); 885 885 cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, cp_bh, kaddr); 886 886 if (nilfs_checkpoint_invalid(cp)) { 887 887 ret = -ENOENT; 888 - kunmap_atomic(kaddr); 888 + kunmap_local(kaddr); 889 889 goto out_cp; 890 890 } 891 891 if (!nilfs_checkpoint_snapshot(cp)) { 892 892 ret = 0; 893 - kunmap_atomic(kaddr); 893 + kunmap_local(kaddr); 894 894 goto out_cp; 895 895 } 896 896 897 897 list = &cp->cp_snapshot_list; 898 898 next = le64_to_cpu(list->ssl_next); 899 899 prev = le64_to_cpu(list->ssl_prev); 900 - kunmap_atomic(kaddr); 900 + kunmap_local(kaddr); 901 901 902 902 ret = nilfs_cpfile_get_header_block(cpfile, &header_bh); 903 903 if (ret < 0) ··· 921 921 get_bh(prev_bh); 922 922 } 923 923 924 - kaddr = kmap_atomic(next_bh->b_page); 924 + kaddr = kmap_local_page(next_bh->b_page); 925 925 list = nilfs_cpfile_block_get_snapshot_list( 926 926 cpfile, next, next_bh, kaddr); 927 927 list->ssl_prev = cpu_to_le64(prev); 928 - kunmap_atomic(kaddr); 928 + kunmap_local(kaddr); 929 929 930 - kaddr = kmap_atomic(prev_bh->b_page); 930 + kaddr = kmap_local_page(prev_bh->b_page); 931 931 list = nilfs_cpfile_block_get_snapshot_list( 932 932 cpfile, prev, prev_bh, kaddr); 933 933 list->ssl_next = cpu_to_le64(next); 934 - kunmap_atomic(kaddr); 934 + kunmap_local(kaddr); 935 935 936 - kaddr = kmap_atomic(cp_bh->b_page); 936 + kaddr = kmap_local_page(cp_bh->b_page); 937 937 cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, cp_bh, kaddr); 938 938 cp->cp_snapshot_list.ssl_next = cpu_to_le64(0); 939 939 cp->cp_snapshot_list.ssl_prev = cpu_to_le64(0); 940 940 nilfs_checkpoint_clear_snapshot(cp); 941 - kunmap_atomic(kaddr); 941 + kunmap_local(kaddr); 942 942 943 - kaddr = kmap_atomic(header_bh->b_page); 943 + kaddr = kmap_local_page(header_bh->b_page); 944 944 header = nilfs_cpfile_block_get_header(cpfile, header_bh, kaddr); 945 945 le64_add_cpu(&header->ch_nsnapshots, -1); 946 - kunmap_atomic(kaddr); 946 + kunmap_local(kaddr); 947 947 948 948 mark_buffer_dirty(next_bh); 949 949 mark_buffer_dirty(prev_bh); ··· 1002 1002 ret = nilfs_cpfile_get_checkpoint_block(cpfile, cno, 0, &bh); 1003 1003 if (ret < 0) 1004 1004 goto out; 1005 - kaddr = kmap_atomic(bh->b_page); 1005 + kaddr = kmap_local_page(bh->b_page); 1006 1006 cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, bh, kaddr); 1007 1007 if (nilfs_checkpoint_invalid(cp)) 1008 1008 ret = -ENOENT; 1009 1009 else 1010 1010 ret = nilfs_checkpoint_snapshot(cp); 1011 - kunmap_atomic(kaddr); 1011 + kunmap_local(kaddr); 1012 1012 brelse(bh); 1013 1013 1014 1014 out: ··· 1085 1085 ret = nilfs_cpfile_get_header_block(cpfile, &bh); 1086 1086 if (ret < 0) 1087 1087 goto out_sem; 1088 - kaddr = kmap_atomic(bh->b_page); 1088 + kaddr = kmap_local_page(bh->b_page); 1089 1089 header = nilfs_cpfile_block_get_header(cpfile, bh, kaddr); 1090 1090 cpstat->cs_cno = nilfs_mdt_cno(cpfile); 1091 1091 cpstat->cs_ncps = le64_to_cpu(header->ch_ncheckpoints); 1092 1092 cpstat->cs_nsss = le64_to_cpu(header->ch_nsnapshots); 1093 - kunmap_atomic(kaddr); 1093 + kunmap_local(kaddr); 1094 1094 brelse(bh); 1095 1095 1096 1096 out_sem: