Messages in this thread | | | Subject | Re: [PATCH v5] fs: introduce is_dot_or_dotdot helper for cleanup | From | Tiezhu Yang <> | Date | Wed, 11 Dec 2019 14:38:34 +0800 |
| |
On 12/11/2019 12:47 PM, Al Viro wrote: > On Wed, Dec 11, 2019 at 11:59:40AM +0800, Tiezhu Yang wrote: > >> static inline bool is_dot_or_dotdot(const unsigned char *name, size_t len) >> { >> if (len == 1 && name[0] == '.') >> return true; >> >> if (len == 2 && name[0] == '.' && name[1] == '.') >> return true; >> >> return false; >> } >> >> Hi Matthew, >> >> How do you think? I think the performance influence is very small >> due to is_dot_or_dotdot() is a such short static inline function. > It's a very short inline function called on a very hot codepath. > Often. > > I mean it - it's done literally for every pathname component of > every pathname passed to a syscall.
OK. I understand. Let us do not use the helper function in fs/namei.c, just use the following implementation for other callers:
static inline bool is_dot_or_dotdot(const unsigned char *name, size_t len) { if (len >= 1 && unlikely(name[0] == '.')) { if (len < 2 || (len == 2 && name[1] == '.')) return true; }
return false; }
Special thanks for Matthew, Darrick, Al and Eric. If you have any more suggestion, please let me know.
Thanks,
Tiezhu Yang
| |