1 #include <linux/dcache.h> 2 #include "internal.h" 3 4 unsigned name_to_int(const struct qstr *qstr) 5 { 6 const char *name = qstr->name; 7 int len = qstr->len; 8 unsigned n = 0; 9 10 if (len > 1 && *name == '0') 11 goto out; 12 do { 13 unsigned c = *name++ - '0'; 14 if (c > 9) 15 goto out; 16 if (n >= (~0U-9)/10) 17 goto out; 18 n *= 10; 19 n += c; 20 } while (--len > 0); 21 return n; 22 out: 23 return ~0U; 24 } 25