Commit b1ea37c
committed
mds: always make getattr wait for xlock to be released by the previous client
When the previous client's setattr request is still holding the xlock
for the linklock/authlock/xattrlock/filelock locks, if the same client
send a getattr request it will use the projected inode to fill the
reply, while for other clients the getattr requests will use the
non-projected inode to fill replies. This causes inconsistent file
mode across multiple clients.
This will just skip batching the ops when any of the xlock is held.
Fixes: https://tracker.ceph.com/issues/63906
Signed-off-by: Xiubo Li <[email protected]>1 parent 472cc2b commit b1ea37c
1 file changed
+12
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4085 | 4085 | | |
4086 | 4086 | | |
4087 | 4087 | | |
| 4088 | + | |
4088 | 4089 | | |
4089 | 4090 | | |
4090 | 4091 | | |
| |||
4106 | 4107 | | |
4107 | 4108 | | |
4108 | 4109 | | |
| 4110 | + | |
| 4111 | + | |
| 4112 | + | |
| 4113 | + | |
| 4114 | + | |
| 4115 | + | |
| 4116 | + | |
| 4117 | + | |
| 4118 | + | |
| 4119 | + | |
| 4120 | + | |
4109 | 4121 | | |
4110 | 4122 | | |
4111 | 4123 | | |
| |||
4147 | 4159 | | |
4148 | 4160 | | |
4149 | 4161 | | |
4150 | | - | |
4151 | 4162 | | |
4152 | 4163 | | |
4153 | 4164 | | |
| |||
0 commit comments