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