Projects
openEuler:22.03:LTS:LoongArch
systemd
_service:tar_scm_kernel_repo:backport-udev-even...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm_kernel_repo:backport-udev-even-if-a-device-is-a-zac-device-scsi-ID_SERIAL.patch of Package systemd
From 8a86e15f07dd7030bfc31fb4944c24fb9a481fc5 Mon Sep 17 00:00:00 2001 From: wangyuhang <524413304@qq.com> Date: Tue, 16 Jan 2024 13:57:07 +0800 Subject: [PATCH] udev: even if a device is a zac device, scsi-$ID_SERIAL will be reserved for it (#30459) Conflict:code context adaptation and do not merge the changes to 60-persistent-storage.rules Reference:https://github.com/systemd/systemd/commit/8a86e15f07dd7030bfc31fb4944c24fb9a481fc5 --- src/udev/ata_id/ata_id.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/udev/ata_id/ata_id.c b/src/udev/ata_id/ata_id.c index 1fc27f4..49357e3 100644 --- a/src/udev/ata_id/ata_id.c +++ b/src/udev/ata_id/ata_id.c @@ -310,7 +310,8 @@ static void disk_identify_fixup_uint16 (uint8_t identify[512], unsigned offset_w */ static int disk_identify(int fd, uint8_t out_identify[512], - int *out_is_packet_device) { + int *out_is_packet_device, + int *ret_peripheral_device_type) { int ret; uint8_t inquiry_buf[36]; int peripheral_device_type; @@ -384,6 +385,10 @@ static int disk_identify(int fd, out: if (out_is_packet_device) *out_is_packet_device = is_packet_device; + + if (ret_peripheral_device_type) + *ret_peripheral_device_type = peripheral_device_type; + return ret; } @@ -407,6 +412,7 @@ int main(int argc, char *argv[]) { { "help", no_argument, NULL, 'h' }, {} }; + int peripheral_device_type = -1; log_set_target(LOG_TARGET_AUTO); udev_parse_config(); @@ -445,7 +451,7 @@ int main(int argc, char *argv[]) { return 1; } - if (disk_identify(fd, identify.byte, &is_packet_device) == 0) { + if (disk_identify(fd, identify.byte, &is_packet_device, &peripheral_device_type) == 0) { /* * fix up only the fields from the IDENTIFY data that we are going to * use and copy it into the hd_driveid struct for convenience @@ -640,6 +646,9 @@ int main(int argc, char *argv[]) { if (IN_SET(identify.wyde[0], 0x848a, 0x844a) || (identify.wyde[83] & 0xc004) == 0x4004) printf("ID_ATA_CFA=1\n"); + + if (peripheral_device_type >= 0) + printf("ID_ATA_PERIPHERAL_DEVICE_TYPE=%d\n", peripheral_device_type); } else { if (serial[0] != '\0') printf("%s_%s\n", model, serial); -- 2.33.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.