=item *
-If the VLDB entry is locked, the string C<Volume is currently LOCKED>.
+If the VLDB entry is locked, the string C<Volume is currently LOCKED>, as
+well as (in OpenAFS 1.5.75 and later) one or more of the following strings:
+
+=over 4
+
+=item Volume is locked for a move operation
+
+Indicates that the volume was locked due to a B<vos move> or a B<vos
+convertROtoRW> command.
+
+=item Volume is locked for a release operation
+
+Indicates that the volume was locked due to a B<vos release> command.
+
+=item Volume is locked for a backup operation
+
+Indicates that the volume was locked due to a B<vos backup> command.
+
+=item Volume is locked for a delete/misc operation
+
+Indicates that the volume was locked due to a B<vos delentry>, B<vos
+addsite>, B<vos remsite>, B<vos changeloc>, B<vos syncvldb>, B<vos
+syncserv>, B<vos rename>, or B<vos lock> command.
+
+=item Volume is locked for a dump/restore operation
+
+Indicates that the volume was locked due to a B<vos dump> or B<vos restore>
+command.
+
+=back
=back
=item *
-If the VLDB entry is locked, the string C<Volume is currently LOCKED>.
+If the VLDB entry is locked, the string C<Volume is currently LOCKED>, as
+well as (in OpenAFS 1.5.75 and later) one or more of the following strings:
+
+=over 4
+
+=item Volume is locked for a move operation
+
+Indicates that the volume was locked due to a B<vos move> or a B<vos
+convertROtoRW> command.
+
+=item Volume is locked for a release operation
+
+Indicates that the volume was locked due to a B<vos release> command.
+
+=item Volume is locked for a backup operation
+
+Indicates that the volume was locked due to a B<vos backup> command.
+
+=item Volume is locked for a delete/misc operation
+
+Indicates that the volume was locked due to a B<vos delentry>, B<vos
+addsite>, B<vos remsite>, B<vos changeloc>, B<vos syncvldb>, B<vos
+syncserv>, B<vos rename>, or B<vos lock> command.
+
+=item Volume is locked for a dump/restore operation
+
+Indicates that the volume was locked due to a B<vos dump> or B<vos restore>
+command.
+
+=back
=back
}
static void
+PrintLocked(afs_int32 aflags)
+{
+ afs_int32 flags = aflags & VLOP_ALLOPERS;
+
+ if (flags) {
+ fprintf(STDOUT, " Volume is currently LOCKED \n");
+
+ if (flags & VLOP_MOVE) {
+ fprintf(STDOUT, " Volume is locked for a move operation\n");
+ }
+ if (flags & VLOP_RELEASE) {
+ fprintf(STDOUT, " Volume is locked for a release operation\n");
+ }
+ if (flags & VLOP_BACKUP) {
+ fprintf(STDOUT, " Volume is locked for a backup operation\n");
+ }
+ if (flags & VLOP_DELETE) {
+ fprintf(STDOUT, " Volume is locked for a delete/misc operation\n");
+ }
+ if (flags & VLOP_DUMP) {
+ fprintf(STDOUT, " Volume is locked for a dump/restore operation\n");
+ }
+ }
+}
+
+static void
PostVolumeStats(struct nvldbentry *entry)
{
SubEnumerateEntry(entry);
/* Check for VLOP_ALLOPERS */
- if (entry->flags & VLOP_ALLOPERS)
- fprintf(STDOUT, " Volume is currently LOCKED \n");
+ PrintLocked(entry->flags);
return;
}
* If VLOP_ALLOPERS is set, the entry is locked.
* Leave this routine as is, but put in correct check.
*/
- if (entry.flags & VLOP_ALLOPERS)
- fprintf(STDOUT, " Volume is currently LOCKED \n");
+ PrintLocked(entry.flags);
return 0;
}
MapHostToNetwork(vllist);
EnumerateEntry(vllist);
- if (vllist->flags & VLOP_ALLOPERS)
- fprintf(STDOUT, " Volume is currently LOCKED \n");
+ PrintLocked(vllist->flags);
}
}
MapHostToNetwork(vllist);
EnumerateEntry(vllist);
- if (vllist->flags & VLOP_ALLOPERS)
- fprintf(STDOUT, " Volume is currently LOCKED \n");
+ PrintLocked(vllist->flags);
}
}