Re: [PATCH 1/9] exofs: osd Swiss army knife

Boaz Harrosh
2009-01-04T08:43:26Z

Pavel Machek wrote:
> Hi!
>
>>> In this patch are all the osd infrastructure that will be used later
>>> by the file system.
>>>
>>> Also the declarations of constants, on disk structures, and prototypes.
>>>
>>> And the Kbuild+Kconfig files needed to build the exofs module.
>>>
>>>
>>> ...
>>>
>>> +struct exofs_sb_info {
>>> + struct osd_dev *s_dev; /* returned by get_osd_dev */
>>> + uint64_t s_pid; /* partition ID of file system*/
>>> + int s_timeout; /* timeout for OSD operations */
>>> + uint32_t s_nextid; /* highest object ID used */
>>> + uint32_t s_numfiles; /* number of files on fs */
>>> + spinlock_t s_next_gen_lock; /* spinlock for gen # update */
>>> + u32 s_next_generation; /* next gen # to use */
>>> + atomic_t s_curr_pending; /* number of pending commands */
>>> + uint8_t s_cred[OSD_CAP_LEN]; /* all-powerful credential */
>>> +};
>>> +
>>> +/*
>>> + * our inode flags
>>> + */
>>> +#ifdef ARCH_HAS_ATOMIC_UNSIGNED
>> This doesn't exist, and it would be fairly bad to introduce it. Please
>> kill the ifdefs.
>>
>>> +typedef unsigned exofs_iflags_t;
>>> +#else
>>> +typedef unsigned long exofs_iflags_t;
>>> +#endif
>> Then please kill the typedef altogether and replace it with `unsigned
>> long' everywhere
>
> Hmmm.. .and at a note somewhere that we assume unsigned long to be atomic...?
>

I think I'll just use unsigned. It's more then enough I'm not using more then 3
bits for now. Is unsigned workable for all ARCHs?

Thanks