Messages in this thread | | | Date | Tue, 08 Dec 2009 01:06:38 +0100 | From | Emese Revfy <> | Subject | Re: [PATCH 28/31] Constify struct super_operations for 2.6.32 v1 |
| |
Alexey Dobriyan wrote: > On 12/6/09, Emese Revfy <re.emese@gmail.com> wrote: >> Alexey Dobriyan wrote: >>>> - struct inode *(*alloc_inode)(struct super_block *sb); >>>> + struct inode *(* const alloc_inode)(struct super_block *sb); >>> Good rule is if adding const doesn't move object from one section >>> to another, it isn't worth it. >>> >>> I suggest we stick to it or risk another wave of jumbo patches. >>> >> If all instances of a given ops structure are const and we would like to >> preserve this policy for the future as well, then it is very useful >> to give future programmers a strong hint about this policy by making >> the compiler complain about any violation attempts. Otherwise they may >> very well write code that modifies such structures and we will have to >> work extra to undo that (or change the policy but in that case it is >> good to know why we have to do that). > > You may want to look what filesystems do with superblock operations. > And after super operations were made const writes to it will be caught > with readonly .rodata config option. > > You're going too far with these modifiers. > > Nothing will be caught.
DEBUG_RODATA catches the unwanted write attempt at runtime whereas my patch will catch it at compile time. I think it's better to detect an error as early as possible. -- Emese
| |