tools/vm/slabinfo: indicates the cause of the EACCES error
If you don't run slabinfo with a superuser, return 0 when read_slab_dir() reads get_obj_and_str("slabs", &t), because fopen() fails (sometimes EACCES), causing slabcache() to return directly, without any error during this time, we should tell the user about the EACCES problem instead of running successfully($?=0) without any error printing. For example: $ ./slabinfo Permission denied, Try using superuser <== What this submission did $ sudo ./slabinfo Name Objects Objsize Space Slabs/Part/Cpu O/S O %Fr %Ef Flg Acpi-Namespace 5950 48 286.7K 65/0/5 85 0 0 99 Acpi-Operand 13664 72 999.4K 231/0/13 56 0 0 98 ... Signed-off-by: Rong Tao <rongtao@cestc.cn> Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
This commit is contained in:
parent
247f34f7b8
commit
654058e67b
|
@ -157,9 +157,11 @@ static unsigned long read_obj(const char *name)
|
|||
{
|
||||
FILE *f = fopen(name, "r");
|
||||
|
||||
if (!f)
|
||||
if (!f) {
|
||||
buffer[0] = 0;
|
||||
else {
|
||||
if (errno == EACCES)
|
||||
fatal("%s, Try using superuser\n", strerror(errno));
|
||||
} else {
|
||||
if (!fgets(buffer, sizeof(buffer), f))
|
||||
buffer[0] = 0;
|
||||
fclose(f);
|
||||
|
|
Loading…
Reference in New Issue