Re: [RFC PATCH] btrfs: Remove 'objectid' member from struct btrfs_root

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Aug 06, 2018 at 02:17:54PM +0800, Qu Wenruo wrote:
> > -	u64 objectid;
> 
> Off topic crazy idea here.
> 
> I think it is a little crazy, but it should save a lot of objectid
> related modification:
> 
> diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
> index 118346aceea9..e6d70f2309a3 100644
> --- a/fs/btrfs/ctree.h
> +++ b/fs/btrfs/ctree.h
> @@ -1166,7 +1166,10 @@ struct btrfs_root {
> 
>         unsigned long state;
>         struct btrfs_root_item root_item;
> -       struct btrfs_key root_key;
> +       union {
> +               struct btrfs_key root_key;
> +               u64 objectid;
> +       };
>         struct btrfs_fs_info *fs_info;
>         struct extent_io_tree dirty_log_pages;
> 
> @@ -1198,7 +1201,6 @@ struct btrfs_root {
>         int last_log_commit;
>         pid_t log_start_pid;
> 
> -       u64 objectid;
>         u64 last_trans;
> 
>         u32 type;
> 
> I'm not sure if this is a really crazy idea or a dirty hack to reduce
> some modification.

Be wary of such tricks. This might make you feel good for a moment how
good your C knowlege is, and also might save a few keystrokes. And a few
years later this costs somebody a week of debugging a mysterious memory
corrupption under circumstances not imagined right now.

Try to write understandable code. If there is a reason to use tricks,
like the struct page has to do for performance reasons, then it must be
documented and justified.



[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux