Fix "C-0 C-x C-s" with write-protected files

* lisp/files.el (basic-save-buffer-2): Call 'set-file-modes' to
try to make the file writable, even if
'set-file-extended-attributes' succeeded.  (Bug#66546)
10 jobs for master in 115 minutes and 3 seconds (queued for 5 seconds)
Status Job ID Name Coverage
  Build Images
failed #75567
build-image-inotify

01:54:50

 
  Normal
skipped #75568
test-all-inotify
 
  Platform Images
failed #75569
build-image-eglot

00:06:17

failed #75571
build-image-gnustep

00:06:14

failed #75570
build-image-tree-sitter

01:54:59

 
  Platforms
skipped #75572
test-eglot
skipped #75574
test-gnustep
skipped #75573
test-tree-sitter
 
  Native Comp Images
failed #75575
build-native-comp-speed2

00:06:20

 
  Native Comp
skipped #75576
test-native-comp-speed2
 
Name Stage Failure
failed
build-image-tree-sitter Platform Images
9df217226e35: Retrying in 1 second
187f5f3f1863: Waiting
net/http: request canceled (Client.Timeout exceeded while awaiting headers)
Running after script...
$ test -n "$(docker ps -aq -f name=${test_name})" && docker cp ${test_name}:checkout/test ${test_name}
$ test -n "$(docker ps -aq -f name=${test_name})" && docker rm ${test_name}
$ find ${test_name} ! \( -name "*.log" -o -name ${EMACS_TEST_JUNIT_REPORT} \) -type f -delete
find: build-image-tree-sitter-484fc70a: No such file or directory
ERROR: Job failed: exit code 1
failed
build-image-inotify Build Images
net/http: request canceled (Client.Timeout exceeded while awaiting headers)
Running after_script
Running after script...
$ test -n "$(docker ps -aq -f name=${test_name})" && docker cp ${test_name}:checkout/test ${test_name}
$ test -n "$(docker ps -aq -f name=${test_name})" && docker rm ${test_name}
$ find ${test_name} ! \( -name "*.log" -o -name ${EMACS_TEST_JUNIT_REPORT} \) -type f -delete
find: build-image-inotify-484fc70a: No such file or directory
Cleaning up project directory and file based variables
ERROR: Job failed: exit code 1

failed
build-native-comp-speed2 Native Comp Images
Error response from daemon: Get "https://emba.gnu.org:5050/v2/": Get "https://emba.gnu.org//jwt/auth?account=gitlab-ci-token&client_id=docker&offline_token=true&service=container_registry": net/http: request canceled (Client.Timeout exceeded while awaiting headers) (Client.Timeout exceeded while awaiting headers)
Running after_script
Running after script...
$ test -n "$(docker ps -aq -f name=${test_name})" && docker cp ${test_name}:checkout/test ${test_name}
$ test -n "$(docker ps -aq -f name=${test_name})" && docker rm ${test_name}
$ find ${test_name} ! \( -name "*.log" -o -name ${EMACS_TEST_JUNIT_REPORT} \) -type f -delete
find: build-native-comp-speed2-484fc70a: No such file or directory
Cleaning up project directory and file based variables
ERROR: Job failed: exit code 1

failed
build-image-gnustep Platform Images
Error response from daemon: Get "https://emba.gnu.org:5050/v2/": Get "https://emba.gnu.org//jwt/auth?account=gitlab-ci-token&client_id=docker&offline_token=true&service=container_registry": net/http: request canceled (Client.Timeout exceeded while awaiting headers) (Client.Timeout exceeded while awaiting headers)
Running after_script
Running after script...
$ test -n "$(docker ps -aq -f name=${test_name})" && docker cp ${test_name}:checkout/test ${test_name}
$ test -n "$(docker ps -aq -f name=${test_name})" && docker rm ${test_name}
$ find ${test_name} ! \( -name "*.log" -o -name ${EMACS_TEST_JUNIT_REPORT} \) -type f -delete
find: build-image-gnustep-484fc70a: No such file or directory
Cleaning up project directory and file based variables
ERROR: Job failed: exit code 1

failed
build-image-eglot Platform Images
Error response from daemon: Get "https://emba.gnu.org:5050/v2/": Get "https://emba.gnu.org//jwt/auth?account=gitlab-ci-token&client_id=docker&offline_token=true&service=container_registry": net/http: request canceled (Client.Timeout exceeded while awaiting headers) (Client.Timeout exceeded while awaiting headers)
Running after_script
Running after script...
$ test -n "$(docker ps -aq -f name=${test_name})" && docker cp ${test_name}:checkout/test ${test_name}
$ test -n "$(docker ps -aq -f name=${test_name})" && docker rm ${test_name}
$ find ${test_name} ! \( -name "*.log" -o -name ${EMACS_TEST_JUNIT_REPORT} \) -type f -delete
find: build-image-eglot-484fc70a: No such file or directory
Cleaning up project directory and file based variables
ERROR: Job failed: exit code 1