From nobody Wed Apr 1 08:45:47 2026 Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) (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 E579A39021F for ; Tue, 31 Mar 2026 19:55:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774986908; cv=none; b=Tn/uNQaP56I4cQZEo2lKWLPuVaHSQgRFRdYsSm1TrgCQKj7AZBWXYQHGAlTU/wpeKy3XcTqNQAz2zMgRAABG7J7SU7iNcG5v0a02LZlsFSEODDXCejp7N1KB00bYKQ3o2037KUBZ5Z9JJBKLSuut2V+Nz9eGsocELHt/8XgcYwg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774986908; c=relaxed/simple; bh=fhP0zt40UwKsUM2Fn9TY3nPTLsBThgp+8L02jrjFmUM=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=VpOAZY9V/SMYYe4CZ3Wgp0VP9BqKvX5/gvdt/pGjOcihx28be+Gy7Goc4Z+mdzoHQFCBJlTSC+B6nw9N6w3NW9C8h0CzZn+4uE5owTqL/49k/LWaYwGzsud9lL6Lhw63CHbQyQS6EPOFsYDk1Oj5VrejAfYx6pJrJ/0UBhZUORI= ARC-Authentication-Results: i=1; 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=nLWVH8+N; arc=none smtp.client-ip=209.85.160.175 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="nLWVH8+N" Received: by mail-qt1-f175.google.com with SMTP id d75a77b69052e-50912a097b0so35265531cf.1 for ; Tue, 31 Mar 2026 12:55:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774986906; x=1775591706; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=4kWz7WqMpgYvQODXw+vPBMXIXzOL9PxHt93CiGM1MVI=; b=nLWVH8+Np2MG+ga4e6EGp+tfMiQh+zVNxaCrLVhubtiYWPRpDwUI8rI5bpk/V+83cZ 76A/vVXYy3FjTnoaJrM6sHTG21Fzwmy0Rvu04PNI1e1knFFus4jKBEaivvw4+P1WUwss jNFfxin8o0LCu7mYbQ2JhT1b3tBvNIYiqtqID8YcnDZF1Q10+l1nqvhRtnQy5bw2VW59 1pPh2LikGGPQoq3d1WBopZOlgks3Yzk9LhIrTUzcV5XgvpEAJSVtxOgli5OQHDwXQeCC KVVTTrgfYC1zya8nEc38Og8Bzvp51zgJ0vEzBnFywwR2xLXjFDi1pkES2vUM9HJMI0Zw Td2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774986906; x=1775591706; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=4kWz7WqMpgYvQODXw+vPBMXIXzOL9PxHt93CiGM1MVI=; b=A3mBd3f7Wwsyek1pt9xpX7uD1vgtVjjiTq6cYSP5vDh2bwPxuT1i1eAEk6iPewx+O0 /6my5NtLNwqD1hd1Z4e011F3H7SOTAkFikhyijX/6xPOdOgEiCksLJArd/5Hs4LetOFn CPT09HOCbLV4zRbm6oRoDDeib2sEzoGYGguI3+8e+hncR0SBODwqb+7blZA/L5UO06Bx z/YIWD94IiQC6qUKKCDG9XvnDEPcVjxCHhyB4L4Kj6V8bXFo4DJoEcRYUj32apJ5mZYN Ysta0tT0Uuq6BDQKbTIBEW6v+IyJg3j8pzwgialrZPDyYxcN1fdkRQewgF/KnRbu5a0e 8H4Q== X-Gm-Message-State: AOJu0YxRAq158HKKPsDG0SQb3VS1l5puRLUfko4zXcWpww/Ws/XQ9nNS 8ALjYcs3ra0BEiEMTapFAWCft0pfgssBk6M8/zkVCJDoVGkE1pJPSBd5z3wYYRBTooE= X-Gm-Gg: ATEYQzzh8Op74PX8cGZC+YrJLQcPj47QnaK0c07YzZA9+lMIyI2bfqFUNw3+luLblmt v69WzxB1QHqLWbElAGxaUJDP07pNntqtqYkbZmsOXxJR3A/noCLXQk2Ld8jc60iACy6awaJ0mfY sBKsns+JziIsWQv7HjRCHCCtLPkOv75VTnAzOBKX1n8CC+n4ZYuIHKHYg3dBaleahQu1fUB31wn 4KAACivJQ5KFfgLKHtmORs3IYZnVTtnLU/qBw+/bF4vz85GR6CLGTrPfgAdvbyzW5LlA+ZId7d5 W3jRK1Glwp8pHFzePdTUhCWju5yLjHSKGYqakB4vLpuJ5SnOueZktHSgYxgQb+9HW021qDTi8uX SrhFmjZWNme2lsRzo4huEibedU+ZdeumDSIaMuh8ikJZ/aEbVwGhhKjmo/ZIodSCkbpjH1zGCFP sbSuqQH4pcFL60G/HOS/kdvcHEfXfxr38= X-Received: by 2002:a05:622a:1f0b:b0:50b:3895:fac4 with SMTP id d75a77b69052e-50d3bd9e27emr11997101cf.62.1774986905582; Tue, 31 Mar 2026 12:55:05 -0700 (PDT) Received: from MEROWN ([85.93.99.108]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-50bb2e16f78sm96678711cf.22.2026.03.31.12.55.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Mar 2026 12:55:05 -0700 (PDT) From: Daniil Bulgar To: linux-kernel@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org, Daniil Bulgar Subject: [PATCH v2] fs/ufs: refactor ufs_set_de_type in util.h to use a table lookup Date: Tue, 31 Mar 2026 21:52:58 +0200 Message-ID: <20260331195258.71494-1-bulgardaniil18@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 --- Changes in v2: added missing [PATCH] prefix to the subject. 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_di= r_entry *de, int mode) if ((UFS_SB(sb)->s_flags & UFS_DE_MASK) !=3D UFS_DE_44BSD) return; =20 - /* - * 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]; } =20 static inline u32 --=20 2.53.0