[FASTFAT]
[reactos.git] / reactos / drivers / filesystems / fastfat / volume.c
index 6fd0480..2155dc7 100644 (file)
@@ -216,7 +216,7 @@ FsdSetFsLabelInformation(PDEVICE_OBJECT DeviceObject,
   {
     RtlCopyMemory(VolumeLabelDirEntry.FatX.Filename, cString, LabelLen);
     memset(&VolumeLabelDirEntry.FatX.Filename[LabelLen], ' ', 42 - LabelLen);
-    VolumeLabelDirEntry.FatX.Attrib = 0x08;
+    VolumeLabelDirEntry.FatX.Attrib = _A_VOLID;
   }
   else
   {
@@ -230,7 +230,7 @@ FsdSetFsLabelInformation(PDEVICE_OBJECT DeviceObject,
     {
       memset(&VolumeLabelDirEntry.Fat.Filename[LabelLen], ' ', sizeof(VolumeLabelDirEntry.Fat.Filename) - LabelLen);
     }
-    VolumeLabelDirEntry.Fat.Attrib = 0x08;
+    VolumeLabelDirEntry.Fat.Attrib = _A_VOLID;
   }
 
   pRootFcb = vfatOpenRootFCB(DeviceExt);
@@ -281,12 +281,18 @@ FsdSetFsLabelInformation(PDEVICE_OBJECT DeviceObject,
     {
       FileOffset.u.HighPart = 0;
       FileOffset.u.LowPart = VolumeLabelDirIndex * SizeDirEntry;
-      CcPinRead(pRootFcb->FileObject, &FileOffset, SizeDirEntry,
-                 TRUE, &Context, (PVOID*)&Entry);
-      RtlCopyMemory(Entry, &VolumeLabelDirEntry, SizeDirEntry);
-      CcSetDirtyPinnedData(Context, NULL);
-      CcUnpinData(Context);
-      Status = STATUS_SUCCESS;
+      if (!CcPinRead(pRootFcb->FileObject, &FileOffset, SizeDirEntry,
+                 TRUE, &Context, (PVOID*)&Entry))
+      {
+          Status = STATUS_UNSUCCESSFUL;
+      }
+      else
+      {
+          RtlCopyMemory(Entry, &VolumeLabelDirEntry, SizeDirEntry);
+          CcSetDirtyPinnedData(Context, NULL);
+          CcUnpinData(Context);
+          Status = STATUS_SUCCESS;
+      }
     }
   }