File tree Expand file tree Collapse file tree 1 file changed +6
-1
lines changed Expand file tree Collapse file tree 1 file changed +6
-1
lines changed Original file line number Diff line number Diff line change @@ -1903,6 +1903,7 @@ int soft_offline_page(unsigned long pfn, int flags)
19031903{
19041904 int ret ;
19051905 struct page * page ;
1906+ bool try_again = true;
19061907
19071908 if (!pfn_valid (pfn ))
19081909 return - ENXIO ;
@@ -1918,14 +1919,18 @@ int soft_offline_page(unsigned long pfn, int flags)
19181919 return 0 ;
19191920 }
19201921
1922+ retry :
19211923 get_online_mems ();
19221924 ret = get_any_page (page , pfn , flags );
19231925 put_online_mems ();
19241926
19251927 if (ret > 0 )
19261928 ret = soft_offline_in_use_page (page );
19271929 else if (ret == 0 )
1928- ret = soft_offline_free_page (page );
1930+ if (soft_offline_free_page (page ) && try_again ) {
1931+ try_again = false;
1932+ goto retry ;
1933+ }
19291934
19301935 return ret ;
19311936}
You can’t perform that action at this time.
0 commit comments