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

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

From: Arnd Bergmann <arnd@arndb.de>
Date: 2014-05-31 14:54:41
Also in: linux-fsdevel, lkml

On Saturday 31 May 2014 10:39:02 Andreas Schwab wrote:
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? 
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
about using bitfields in general.

	Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help