Message ID | 4264141.3m7C7LgF5c@wuerfel (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
On Tue, Jan 13, 2015 at 03:09:03PM +0100, Arnd Bergmann wrote: > A recent change introduced a type cast from a private 64-bit > value to a pointer, which works fine on 64-bit architectures, > but not on 32-bit ones, where it produces a harmless compiler > warning: > > fs/btrfs/extent_io.c: In function 'btrfs_free_io_failure_record': > fs/btrfs/extent_io.c:2193:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] > > This adds an intermediate cast to 'unsigned long', which tells > the compiler to ignore the type mismatch. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > Fixes: f612496bca664 ("Btrfs: cleanup the read failure record after write > or when the inode is freeing") Already reported, but not merged https://patchwork.kernel.org/patch/5541281/ -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Jan 13, 2015 at 7:16 PM, David Sterba <dsterba@suse.cz> wrote: > On Tue, Jan 13, 2015 at 03:09:03PM +0100, Arnd Bergmann wrote: >> A recent change introduced a type cast from a private 64-bit >> value to a pointer, which works fine on 64-bit architectures, >> but not on 32-bit ones, where it produces a harmless compiler >> warning: >> >> fs/btrfs/extent_io.c: In function 'btrfs_free_io_failure_record': >> fs/btrfs/extent_io.c:2193:13: warning: cast to pointer from integer >> of different size [-Wint-to-pointer-cast] >> >> This adds an intermediate cast to 'unsigned long', which tells >> the compiler to ignore the type mismatch. >> >> Signed-off-by: Arnd Bergmann <arnd@arndb.de> >> Fixes: f612496bca664 ("Btrfs: cleanup the read failure record after >> write >> or when the inode is freeing") > > Already reported, but not merged I'll take the original cast one for now and we can do the larger cleanup for the next merge window. -chris -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 4ebabd237153..790dbae3343c 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -2190,7 +2190,7 @@ void btrfs_free_io_failure_record(struct inode *inode, u64 start, u64 end) next = next_state(state); - failrec = (struct io_failure_record *)state->private; + failrec = (struct io_failure_record *)(unsigned long)state->private; free_extent_state(state); kfree(failrec);
A recent change introduced a type cast from a private 64-bit value to a pointer, which works fine on 64-bit architectures, but not on 32-bit ones, where it produces a harmless compiler warning: fs/btrfs/extent_io.c: In function 'btrfs_free_io_failure_record': fs/btrfs/extent_io.c:2193:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] This adds an intermediate cast to 'unsigned long', which tells the compiler to ignore the type mismatch. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Fixes: f612496bca664 ("Btrfs: cleanup the read failure record after write or when the inode is freeing") -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html