From patchwork Wed Nov 12 15:00:44 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Dressler X-Patchwork-Id: 5290391 Return-Path: X-Original-To: patchwork-linux-btrfs@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 1064CC11AC for ; Wed, 12 Nov 2014 15:01:26 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id F061820176 for ; Wed, 12 Nov 2014 15:01:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4CA172015D for ; Wed, 12 Nov 2014 15:01:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753176AbaKLPBB (ORCPT ); Wed, 12 Nov 2014 10:01:01 -0500 Received: from mail-pa0-f46.google.com ([209.85.220.46]:35160 "EHLO mail-pa0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752620AbaKLPBA (ORCPT ); Wed, 12 Nov 2014 10:01:00 -0500 Received: by mail-pa0-f46.google.com with SMTP id lf10so13107396pab.33 for ; Wed, 12 Nov 2014 07:00:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=omeoD6HP2V6pjTZTAral1JM72c7neWpL9c6Cqu1bdtM=; b=NGFd4c3jlt6iS0oojUzpAFlF/T3mjvclQry56LTlBJ61kynADpOeJ74IBy8/0CthAK y6LiXNjSXr+lgCj3a2rRIQd1irBCd5DJz7pmT5NDRAcaHof9ES8qvoFVOEVuN4qPJsvz +NCUecPlT/9skECRgpxLem6QL3XxAmTWKlMtm45cz64v3yrqNuXH1dua7hNXS4IOLEpe 7Ge8OjKVBqRRU13gwOmA2GqxGSYuJHIvULH4JOwPUM32rcwyQ3ck5+7YsCnRSFQWiVJZ cHpja8MtcJVgyaHWh9lcRrEAGRSmAiST9hUyZMEFKVdmHU3QmUDK5KrwBlmypvQN9JjD KpDg== X-Received: by 10.70.90.11 with SMTP id bs11mr49053800pdb.16.1415804459602; Wed, 12 Nov 2014 07:00:59 -0800 (PST) Received: from localhost.localdomain (g192.61-205-219.ppp.wakwak.ne.jp. [61.205.219.192]) by mx.google.com with ESMTPSA id kv10sm22565741pab.23.2014.11.12.07.00.56 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 12 Nov 2014 07:00:58 -0800 (PST) From: Daniel Dressler To: danieru.dressler@gmail.com Cc: Chris Mason , Josef Bacik , linux-btrfs@vger.kernel.org (open list:BTRFS FILE SYSTEM), linux-kernel@vger.kernel.org (open list) Subject: [PATCH] Btrfs: qgroup: add BUILD_BUG to report pointer cast breakage Date: Thu, 13 Nov 2014 00:00:44 +0900 Message-Id: <1415804444-9765-1-git-send-email-danieru.dressler@gmail.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: References: Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org X-Spam-Status: No, score=-7.3 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Our ulist data structure stores at max 64bit values. qgroup has used this structure to store pointers. In the future when we upgrade to 128bit this casting of pointers to uint64_t will break. This patch adds a BUILD_BUG ensuring that this code will not be left untouched in the upgrade. It also marks this issue on the TODO list so it may be addressed before such an upgrade. Signed-off-by: Daniel Dressler --- fs/btrfs/qgroup.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c index 48b60db..87f7c98 100644 --- a/fs/btrfs/qgroup.c +++ b/fs/btrfs/qgroup.c @@ -44,6 +44,7 @@ * - caches fuer ulists * - performance benchmarks * - check all ioctl parameters + * - do not cast uintptr_t to uint64_t in ulist usage */ /* @@ -101,6 +102,7 @@ struct btrfs_qgroup_list { #define ptr_to_u64(x) ((u64)(uintptr_t)x) #define u64_to_ptr(x) ((struct btrfs_qgroup *)(uintptr_t)x) +BUILD_BUG_ON(UINTPTR_MAX > UINT64_MAX); static int qgroup_rescan_init(struct btrfs_fs_info *fs_info, u64 progress_objectid,