__big_dirty函数中“idx = 1 << oblock % 29 + 2;”语句使得idx的值在(1<<2)至(1<<30)之间,但是“value = pack_value(o_oblock, (flags & ~idx) | (dirty ? idx : 0));”语句在dirty为true时,会忽略pack_value第二个参数的高16位,这个是怎么考虑的?没看明白。
__big_dirty函数中“idx = 1 << oblock % 29 + 2;”语句使得idx的值在(1<<2)至(1<<30)之间,但是“value = pack_value(o_oblock, (flags & ~idx) | (dirty ? idx : 0));”语句在dirty为true时,会忽略pack_value第二个参数的高16位,这个是怎么考虑的?没看明白。