| 2223 | } |
| 2224 | |
| 2225 | NTSTATUS |
| 2226 | Ext2InitializeLabel( |
| 2227 | IN PEXT2_VCB Vcb, |
| 2228 | IN PEXT2_SUPER_BLOCK Sb |
| 2229 | ) |
| 2230 | { |
| 2231 | NTSTATUS status; |
| 2232 | |
| 2233 | USHORT Length; |
| 2234 | UNICODE_STRING Label; |
| 2235 | OEM_STRING OemName; |
| 2236 | |
| 2237 | Label.MaximumLength = 16 * sizeof(WCHAR); |
| 2238 | Label.Length = 0; |
| 2239 | Label.Buffer = Vcb->Vpb->VolumeLabel; |
| 2240 | Vcb->Vpb->VolumeLabelLength = 0; |
| 2241 | RtlZeroMemory(Label.Buffer, Label.MaximumLength); |
| 2242 | |
| 2243 | Length = 16; |
| 2244 | while ( (Length > 0) && |
| 2245 | ((Sb->s_volume_name[Length -1] == 0x00) || |
| 2246 | (Sb->s_volume_name[Length - 1] == 0x20) ) |
| 2247 | ) { |
| 2248 | Length--; |
| 2249 | } |
| 2250 | |
| 2251 | if (Length == 0) { |
| 2252 | return STATUS_SUCCESS; |
| 2253 | } |
| 2254 | |
| 2255 | OemName.Buffer = Sb->s_volume_name; |
| 2256 | OemName.MaximumLength = 16; |
| 2257 | OemName.Length = Length; |
| 2258 | |
| 2259 | status = Ext2OEMToUnicode(Vcb, &Label, &OemName); |
| 2260 | if (NT_SUCCESS(status)) { |
| 2261 | Vcb->Vpb->VolumeLabelLength = Label.Length; |
| 2262 | } |
| 2263 | |
| 2264 | return status; |
| 2265 | } |
| 2266 | |
| 2267 | static __inline BOOLEAN Ext2IsNullUuid (__u8 * uuid) |
| 2268 | { |
no test coverage detected