Date: Fri, 11 Dec 2009 15:10:06 +0100 From: Grzegorz Bernacki <gjb@semihalf.com> To: freebsd-current@freebsd.org Subject: Possible bug in ata-disk.c Message-ID: <4B2252BE.8080806@semihalf.com>
next in thread | raw e-mail | index | archive | help
Hi, I've looked over ATA code and I've noticed that setting DISKFLAG_CANDELETE big in disk->d_flags clears DISKFLAGS_CANFLUSHCAHCE bit if it was set. Below is the patch. --- a/sys/dev/ata/ata-disk.c +++ b/sys/dev/ata/ata-disk.c @@ -133,11 +133,11 @@ ad_attach(device_t dev) adp->disk->d_unit = device_get_unit(dev); if (atadev->param.support.command2 & ATA_SUPPORT_FLUSHCACHE) adp->disk->d_flags = DISKFLAG_CANFLUSHCACHE; if ((atadev->param.support.command2 & ATA_SUPPORT_CFA) || atadev->param.config == ATA_PROTO_CFA) - adp->disk->d_flags |= DISKFLAG_CANDELETE; + adp->disk->d_flags = DISKFLAG_CANDELETE; snprintf(adp->disk->d_ident, sizeof(adp->disk->d_ident), "ad:%s", atadev->param.serial); disk_create(adp->disk, DISK_VERSION); device_add_child(dev, "subdisk", device_get_unit(dev)); ad_firmware_geom_adjust(dev, adp->disk); regards, Grzesiek
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4B2252BE.8080806>