Commit 1143be1
committed
io_uring/rw: don't mask in f_iocb_flags
A previous commit changed overwriting kiocb->ki_flags with
->f_iocb_flags with masking it in. This breaks for retry situations,
where we don't necessarily want to retain previously set flags, like
IOCB_NOWAIT.
The use case needs IOCB_HAS_METADATA to be persistent, but the change
makes all flags persistent, which is an issue. Add a request flag to
track whether the request has metadata or not, as that is persistent
across issues.
Fixes: 59a7d12 ("io_uring: introduce attributes for read/write and PI support")
Signed-off-by: Jens Axboe <[email protected]>1 parent ce94640 commit 1143be1
2 files changed
+12
-9
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
480 | 480 | | |
481 | 481 | | |
482 | 482 | | |
| 483 | + | |
483 | 484 | | |
484 | 485 | | |
485 | 486 | | |
| |||
560 | 561 | | |
561 | 562 | | |
562 | 563 | | |
| 564 | + | |
| 565 | + | |
563 | 566 | | |
564 | 567 | | |
565 | 568 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
283 | 283 | | |
284 | 284 | | |
285 | 285 | | |
286 | | - | |
| 286 | + | |
287 | 287 | | |
288 | 288 | | |
289 | 289 | | |
| |||
787 | 787 | | |
788 | 788 | | |
789 | 789 | | |
790 | | - | |
791 | | - | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
792 | 795 | | |
793 | 796 | | |
794 | 797 | | |
795 | 798 | | |
796 | 799 | | |
797 | 800 | | |
798 | | - | |
799 | | - | |
800 | | - | |
801 | | - | |
802 | 801 | | |
803 | 802 | | |
804 | 803 | | |
| |||
849 | 848 | | |
850 | 849 | | |
851 | 850 | | |
852 | | - | |
| 851 | + | |
853 | 852 | | |
854 | 853 | | |
855 | 854 | | |
| |||
883 | 882 | | |
884 | 883 | | |
885 | 884 | | |
886 | | - | |
| 885 | + | |
887 | 886 | | |
888 | 887 | | |
889 | 888 | | |
| |||
892 | 891 | | |
893 | 892 | | |
894 | 893 | | |
| 894 | + | |
895 | 895 | | |
896 | 896 | | |
897 | 897 | | |
| |||
0 commit comments