Thread (4 messages) 4 messages, 3 authors, 2014-05-31

Re: [RFC 01/32] fs: introduce new 'struct inode_time'

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2014-05-31 16:15:30
Also in: linux-fsdevel, lkml

Possibly related (same subject, not in this thread)

On Sat, May 31, 2014 at 4:54 PM, Arnd Bergmann [off-list ref] wrote:
On Saturday 31 May 2014 10:39:02 Andreas Schwab wrote:
quoted
Geert Uytterhoeven [off-list ref] writes:
quoted
Hi Arnd,

On Fri, May 30, 2014 at 10:01 PM, Arnd Bergmann [off-list ref] wrote:
quoted
+ * The variant using bit fields is less efficient to access, but
+ * small and has a wider range as the 32-bit one, plus it keeps
+ * the signedness of the original timespec.
+ */
+struct inode_time {
+       long long       tv_sec  : 34;
+       int             tv_nsec : 30;
+};
Don't you need 31 bits for tv_nsec, to accommodate for the sign bit?
I know you won't really store negative numbers there, but storing a large
positive number will become negative on read out, won't it?
Only if the int bitfield is signed.  Bitfields are weird, aren't they?
According to 6.7.2#5 (thanks for the reference), this is implementation defined.
It was a mistake on my side, as I didn't know about that rule and
meant write 'unsigned int' really. Also, I always have a bad feeling
IC, but the comment said "plus it keeps the signedness".
So it doesn't keep the signedness for the tv_nsec field.
about using bitfields in general.
Hehe...

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help