From nobody Wed Apr 1 09:49:48 2026 Received: from mail-ua1-f52.google.com (mail-ua1-f52.google.com [209.85.222.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 851B1376497 for ; Tue, 31 Mar 2026 19:44:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=209.85.222.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774986241; cv=pass; b=YisAbz3YU4EsMt1Gi/T6f5/JS/D4aJIQVDhiS7OLSFf5kluZp5WUwrt12DzrF+D76BFKOkgInT5MSHkk53oNBRS5bFWbIVI83ZRIiJ7BRpVMHmAa0UX6iGu/ooAzMnylC2VJmaBJkCfu1NxgzFFc9AVE/bcazgQ4gGLZBbZxtTI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774986241; c=relaxed/simple; bh=YUELv8ViZKtga1atWoviIuY3T3Zh0ws8oWzMmh87XV0=; h=MIME-Version:From:Date:Message-ID:Subject:To:Cc:Content-Type; b=h2qLF4HDZXvDmC37bm5unjWL8HcLagTxARwRIcHdNImjMApsOD7PzJmzBaa2C0YgJn1Vd8R2UTXHjRtxKUv0h4kEK1vhR0e6exdEyxTfOia0Zq8lWimGdNgRlZZKqwZRpHWcMNa2zfKCdq9z6YqT7VmxFk1pzpqOnHu8R5uyCAg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=jfzkFVgb; arc=pass smtp.client-ip=209.85.222.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="jfzkFVgb" Received: by mail-ua1-f52.google.com with SMTP id a1e0cc1a2514c-953b15c764dso1532145241.2 for ; Tue, 31 Mar 2026 12:44:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774986239; cv=none; d=google.com; s=arc-20240605; b=M/1mcbzV9LONQ9PM61n9LJbusboxEuy8VulKmb3ld0xq3Z8dTFzhTFZP6exGL8IGvo O8effYbh9Y4dnCSkNc6g5A6vcSC1bL0hriAd62AOc/YDQZyZZkRbosDMgHi6P/6l6bje TvvKUwCs9rTYfNVV8FY6o0ZqMedgDqBQgwyVssTAqAe4AfqGUpZ2PRaKJQnqEkcEASU5 3o56uAakONZ8m3Wuc20ZuyyDrDp0jiWBNBARaejGpmuwIbqMWUVOeu827BoJtLpjIKrB Bsy3oqIbMoiuxiLoUP8RWVfMa15NZpN2qWjxBv9tQxiBhyK4SeUEsb5V3Ll+uquSTskj /R1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:mime-version:dkim-signature; bh=nr14MB9jKoo/1LC8ydE0zzpt55tHEenOreaGRoyDC6E=; fh=+PqK1gP19aGdeoii+r7wqLHTdS9srSLjf23mqP0gD9Y=; b=RfW/TMdIiovqd4EWbR75EQU7uk5g5zRnF95kJZND/Q2x6H0bCoBVPEyvpFBoq17Tn8 L/Xhjdx91c4WZBZHiNU6WWeI9phiar33oDPdlKwPJfjAJTZ/VtyuXhyQ1RhwCFhtvQPV N9wxXXE4On0Fw5vNRVoawEi7mLQSn0Dej7gcLhVHMvkkZUNK29ENOb1DvmameVCLPKcP 7MfBdcjeJKnbPnyl7a5EjddFY0gg1F1rhgphgmGLoFC1Pgs/LVm1hSYK5JByD3jnX7s2 4pvxpY/MZiYPq9+tWUazQ/h8kpK43t0iqYLkCJfDthAdQiqCowR5MonqB21CQKhvXt6R 1k+A==; darn=vger.kernel.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774986239; x=1775591039; darn=vger.kernel.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=nr14MB9jKoo/1LC8ydE0zzpt55tHEenOreaGRoyDC6E=; b=jfzkFVgbdNLCp7ByrRW1Y8i8k44ehitvdaiK8EZmvbcRzwzpnu12qrLIu30uB5xIuK 4FZAZnUD0jdHntae/PWVE0sq2ow9pHoRTQrhEzfwHGVqStqprxLbZ8h+8JZHJPqMuGY9 qSmdymNKMaBr5HCvqgGV56P3A36ubjCjt6iFmvZzN87p+u6HNu8AJnoB1AhrY9H1epv6 5aCbHasJaJ2kDDHkcyrsq+qh1uAKLREn0ucBLh1iCAy0c+uxZrZaxp8WbZmBq+MrxFKE 90snprzbbot4k96pyYqkz6XekGUnIAS2gRZkf3kZiShQZco0XWswAX6TksuGABK6OTHg vS/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774986239; x=1775591039; h=cc:to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=nr14MB9jKoo/1LC8ydE0zzpt55tHEenOreaGRoyDC6E=; b=B8CfBNPFkzzGvcg1QjoD1Z+ezLooEOgcr/KSk2jVQpYLY6D4JQbx1EtvQrtRNU1AmJ 3REQ/lJ1sWaGuvCB8kcUlkUVEshlAuGFfqNJuKTxKQWBUQZXQXEetlPsUSyTglPtmXMS 5efaz9Ig5jk5xvnx2O7EJlSDtS1nmR6OxjUzNjZNmOwZSVwsIRQ8mB859ZmyujK3ZzXk kHDnGMsXzuMNrEQeFR2QyUMjv65Uo+qPt7XEnm1r3vNAfa0UuZPbCbiJcAwcJVTk7pcS W0AW9oKZG5/ZA5c5xOLZskJx2z7KW0bsmVB7tqgyw09Jsacev3aNMap+ORSndyi+11ZT T3sA== X-Gm-Message-State: AOJu0Yz/3AnYcVzW+9pNYsXsnSDAmb2U2uLCtyLL5LwbhpUHsaUIcL98 ws6DOsd4VHjEeLBqnVnUrkhjrCk4Lql4pDCnlQsyK7qIGUKaZWOOkvTIyD++ZEk+8Ewn99uSK4E tHNl8074Kh+sqDRddTPzIntcF5JeOPWfHg8ExlK/gQQ== X-Gm-Gg: ATEYQzyx+q/+2CSj65GHviWusTocaKgKqQMABBsEikjmtawPV70YnfcAZvgfoJsjnPz W6iGtmZ37ZUx9Murd5FeQF1BwWNdyKwZ61TBEUzVY9aEdYfUjcqV7dO7Wt0foKuDZ1tt0Ye6M/b q/H292V1EJN/UGhLGTu1+5JuLF2bSxXTIX8bGoTansJHY/FqfxEbQoQpntUQf/QoFyaH7QZkEIt zVkoVf/ZQaDyOknFrJMtt0fyLNt4beELEi8dxbNvwKxysUk0fUfdLpnKtyLY2Wt0M85eqFqivWw wrugL5yFehmD+iik X-Received: by 2002:a05:6102:3e17:b0:5fd:ff75:f437 with SMTP id ada2fe7eead31-6056826cfbcmr252787137.33.1774986239232; Tue, 31 Mar 2026 12:43:59 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: =?UTF-8?B?0JTQsNC90LjQuNC7INCR0YPQu9Cz0LDRgNGM?= Date: Tue, 31 Mar 2026 21:43:48 +0200 X-Gm-Features: AQROBzCDnwbcWvG5-YkXWZSpaTNbTMDVAAeJ-kLYJYVEfEGgOu7qkjZZKAO126E Message-ID: Subject: fs/ufs: refactor ufs_set_de_type in util.h to use a table lookup To: linux-kernel@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" fs/ufs: refactor ufs_set_de_type in util.h to use a table lookup Replace the switch-case logic with a more efficient table lookup for converting mode bits to directory entry types. This addresses an explicit TODO in the code. The change reduces code complexity and slightly decreases the compiled size of the function by replacing branching logic with a constant 16-byte array. Signed-off-by: Daniil Bulgar --- fs/ufs/util.h | 39 +++++++++++---------------------------- 1 file changed, 11 insertions(+), 28 deletions(-) diff --git a/fs/ufs/util.h b/fs/ufs/util.h index 391bb4f11..8966c3ab5 100644 --- a/fs/ufs/util.h +++ b/fs/ufs/util.h @@ -152,34 +152,17 @@ ufs_set_de_type(struct super_block *sb, struct ufs_dir_entry *de, int mode) if ((UFS_SB(sb)->s_flags & UFS_DE_MASK) !=3D UFS_DE_44BSD) return; - /* - * TODO turn this into a table lookup - */ - switch (mode & S_IFMT) { - case S_IFSOCK: - de->d_u.d_44.d_type =3D DT_SOCK; - break; - case S_IFLNK: - de->d_u.d_44.d_type =3D DT_LNK; - break; - case S_IFREG: - de->d_u.d_44.d_type =3D DT_REG; - break; - case S_IFBLK: - de->d_u.d_44.d_type =3D DT_BLK; - break; - case S_IFDIR: - de->d_u.d_44.d_type =3D DT_DIR; - break; - case S_IFCHR: - de->d_u.d_44.d_type =3D DT_CHR; - break; - case S_IFIFO: - de->d_u.d_44.d_type =3D DT_FIFO; - break; - default: - de->d_u.d_44.d_type =3D DT_UNKNOWN; - } + static const unsigned char type_table[16] =3D { + [S_IFSOCK >> 12] =3D DT_SOCK, + [S_IFLNK >> 12] =3D DT_LNK, + [S_IFREG >> 12] =3D DT_REG, + [S_IFBLK >> 12] =3D DT_BLK, + [S_IFDIR >> 12] =3D DT_DIR, + [S_IFCHR >> 12] =3D DT_CHR, + [S_IFIFO >> 12] =3D DT_FIFO, + }; + + de->d_u.d_44.d_type =3D type_table[(mode & S_IFMT) >> 12]; } static inline u32 --=20 2.53.0