687 |
return pupa_errno; |
return pupa_errno; |
688 |
} |
} |
689 |
|
|
690 |
|
static pupa_err_t |
691 |
|
pupa_ext2_label (pupa_device_t device, char **label) |
692 |
|
{ |
693 |
|
struct pupa_ext2_data *data; |
694 |
|
pupa_disk_t disk = device->disk; |
695 |
|
|
696 |
|
#ifndef PUPA_UTIL |
697 |
|
pupa_dl_ref (my_mod); |
698 |
|
#endif |
699 |
|
|
700 |
|
data = pupa_ext2_mount (disk); |
701 |
|
if (data) |
702 |
|
*label = pupa_strndup (data->sblock.volume_name, 14); |
703 |
|
else |
704 |
|
*label = 0; |
705 |
|
|
706 |
|
#ifndef PUPA_UTIL |
707 |
|
pupa_dl_unref (my_mod); |
708 |
|
#endif |
709 |
|
|
710 |
|
pupa_free (data); |
711 |
|
|
712 |
|
return pupa_errno; |
713 |
|
} |
714 |
|
|
715 |
|
|
716 |
static struct pupa_fs pupa_ext2_fs = |
static struct pupa_fs pupa_ext2_fs = |
717 |
{ |
{ |
720 |
.open = pupa_ext2_open, |
.open = pupa_ext2_open, |
721 |
.read = pupa_ext2_read, |
.read = pupa_ext2_read, |
722 |
.close = pupa_ext2_close, |
.close = pupa_ext2_close, |
723 |
|
.label = pupa_ext2_label, |
724 |
.next = 0 |
.next = 0 |
725 |
}; |
}; |
726 |
|
|