Commit 9620ad8
afs: Re-enable freezing once a page fault is interrupted
If a task is killed during a page fault, it does not currently call
sb_end_pagefault(), which means that the filesystem cannot be frozen
at any time thereafter. This may be reported by lockdep like this:
====================================
WARNING: fsstress/10757 still has locks held!
5.13.0-rc4-build4+ #91 Not tainted
------------------------------------
1 lock held by fsstress/10757:
#0: ffff888104eac530
(
sb_pagefaults
as filesystem freezing is modelled as a lock.
Fix this by removing all the direct returns from within the function,
and using 'ret' to indicate whether we were interrupted or successful.
Fixes: 1cf7a15 ("afs: Implement shared-writeable mmap")
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: David Howells <dhowells@redhat.com>
cc: linux-afs@lists.infradead.org
Link: https://lore.kernel.org/r/20210616154900.1958373-1-willy@infradead.org/
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>1 parent b1edae0 commit 9620ad8
1 file changed
Lines changed: 8 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
837 | 837 | | |
838 | 838 | | |
839 | 839 | | |
| 840 | + | |
840 | 841 | | |
841 | 842 | | |
842 | 843 | | |
| |||
848 | 849 | | |
849 | 850 | | |
850 | 851 | | |
851 | | - | |
| 852 | + | |
852 | 853 | | |
853 | 854 | | |
854 | 855 | | |
855 | | - | |
| 856 | + | |
856 | 857 | | |
857 | 858 | | |
858 | | - | |
| 859 | + | |
859 | 860 | | |
860 | 861 | | |
861 | 862 | | |
862 | 863 | | |
863 | 864 | | |
864 | 865 | | |
865 | 866 | | |
866 | | - | |
| 867 | + | |
867 | 868 | | |
868 | 869 | | |
869 | 870 | | |
| |||
877 | 878 | | |
878 | 879 | | |
879 | 880 | | |
| 881 | + | |
| 882 | + | |
880 | 883 | | |
881 | | - | |
| 884 | + | |
882 | 885 | | |
883 | 886 | | |
884 | 887 | | |
| |||
0 commit comments