diff options
Diffstat (limited to 'fs/bcachefs/dirent.c')
-rw-r--r-- | fs/bcachefs/dirent.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/bcachefs/dirent.c b/fs/bcachefs/dirent.c index d3dd3eb71837..c4be31494e21 100644 --- a/fs/bcachefs/dirent.c +++ b/fs/bcachefs/dirent.c @@ -14,11 +14,9 @@ unsigned bch2_dirent_name_bytes(struct bkey_s_c_dirent d) { unsigned len = bkey_val_bytes(d.k) - offsetof(struct bch_dirent, d_name); + u8 *null = memchr(d.v->d_name, 0, len); - while (len && !d.v->d_name[len - 1]) - --len; - - return len; + return null ? null - d.v->d_name : len; } static unsigned dirent_val_u64s(unsigned len) |