ruby-dev (Japanese) list archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-dev:50166] [Ruby trunk Bug#13731] inode for Windows on ReFS
       [not found] <redmine.issue-13731.20170708061530@ruby-lang.org>
@ 2017-07-08  6:15 ` kubo
  2017-07-14  9:01 ` [ruby-dev:50176] [Ruby trunk Feature#13731][Assigned] " naruse
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 11+ messages in thread
From: kubo @ 2017-07-08  6:15 UTC (permalink / raw)
  To: ruby-dev

Issue #13731 has been reported by kubo (Takehiro Kubo).

----------------------------------------
Bug #13731: inode for Windows on ReFS
https://bugs.ruby-lang.org/issues/13731

* Author: kubo (Takehiro Kubo)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: trunk
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
#11216 でWindowsでのinodeの代用としてBY_HANDLE_FILE_INFORMATION構造体の
メンバ、nFileIndexHigh/Lowを使っていますが、ReFS ではこの値ではユニークに
なりません。ReFSでは64ビットではなくて、128ビットでユニークな番号になります。

In https://msdn.microsoft.com/en-us/library/windows/desktop/aa363788(v=vs.85).aspx
  The ReFS file system, introduced with Windows Server 2012, includes
  128-bit file identifiers. To retrieve the 128-bit file identifier use the
  GetFileInformationByHandleEx function with FileIdInfo to retrieve the
  FILE_ID_INFO structure. The 64-bit identifier in this structure is not
  guaranteed to be unique on ReFS.

128ビットの数字を入れるには現行の struct stati64 では足りません。しかし、 #13726
のパッチが受け入れられたなら stat 構造体の定義が変わるので、ついでに st_ino を
128ビットにしたら(もしくは st_ino を 64ビットにして、64ビットのメンバをもうひと
つ追加したら)どうでしょうか?
ruby 2.5 になるタイミングならABI非互換の変更も入れられるでしょう。




-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-dev:50176] [Ruby trunk Feature#13731][Assigned] inode for Windows on ReFS
       [not found] <redmine.issue-13731.20170708061530@ruby-lang.org>
  2017-07-08  6:15 ` [ruby-dev:50166] [Ruby trunk Bug#13731] inode for Windows on ReFS kubo
@ 2017-07-14  9:01 ` naruse
  2017-07-18 12:36 ` [ruby-dev:50179] [Ruby trunk Feature#13731] " usa
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 11+ messages in thread
From: naruse @ 2017-07-14  9:01 UTC (permalink / raw)
  To: ruby-dev

Issue #13731 has been updated by naruse (Yui NARUSE).

Tracker changed from Bug to Feature
Status changed from Open to Assigned
Assignee set to usa (Usaku NAKAMURA)
ruby -v deleted (trunk)
Backport deleted (2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN)

----------------------------------------
Feature #13731: inode for Windows on ReFS
https://bugs.ruby-lang.org/issues/13731#change-65792

* Author: kubo (Takehiro Kubo)
* Status: Assigned
* Priority: Normal
* Assignee: usa (Usaku NAKAMURA)
* Target version: 
----------------------------------------
#11216 でWindowsでのinodeの代用としてBY_HANDLE_FILE_INFORMATION構造体の
メンバ、nFileIndexHigh/Lowを使っていますが、ReFS ではこの値ではユニークに
なりません。ReFSでは64ビットではなくて、128ビットでユニークな番号になります。

In https://msdn.microsoft.com/en-us/library/windows/desktop/aa363788(v=vs.85).aspx
  The ReFS file system, introduced with Windows Server 2012, includes
  128-bit file identifiers. To retrieve the 128-bit file identifier use the
  GetFileInformationByHandleEx function with FileIdInfo to retrieve the
  FILE_ID_INFO structure. The 64-bit identifier in this structure is not
  guaranteed to be unique on ReFS.

128ビットの数字を入れるには現行の struct stati64 では足りません。しかし、 #13726
のパッチが受け入れられたなら stat 構造体の定義が変わるので、ついでに st_ino を
128ビットにしたら(もしくは st_ino を 64ビットにして、64ビットのメンバをもうひと
つ追加したら)どうでしょうか?
ruby 2.5 になるタイミングならABI非互換の変更も入れられるでしょう。




-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-dev:50179] [Ruby trunk Feature#13731] inode for Windows on ReFS
       [not found] <redmine.issue-13731.20170708061530@ruby-lang.org>
  2017-07-08  6:15 ` [ruby-dev:50166] [Ruby trunk Bug#13731] inode for Windows on ReFS kubo
  2017-07-14  9:01 ` [ruby-dev:50176] [Ruby trunk Feature#13731][Assigned] " naruse
@ 2017-07-18 12:36 ` usa
  2017-12-04  3:36 ` [ruby-dev:50333] [Ruby trunk Feature#13731][Assigned] " usa
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 11+ messages in thread
From: usa @ 2017-07-18 12:36 UTC (permalink / raw)
  To: ruby-dev

Issue #13731 has been updated by usa (Usaku NAKAMURA).


2.5でやりましょう。

----------------------------------------
Feature #13731: inode for Windows on ReFS
https://bugs.ruby-lang.org/issues/13731#change-65829

* Author: kubo (Takehiro Kubo)
* Status: Assigned
* Priority: Normal
* Assignee: usa (Usaku NAKAMURA)
* Target version: 
----------------------------------------
#11216 でWindowsでのinodeの代用としてBY_HANDLE_FILE_INFORMATION構造体の
メンバ、nFileIndexHigh/Lowを使っていますが、ReFS ではこの値ではユニークに
なりません。ReFSでは64ビットではなくて、128ビットでユニークな番号になります。

In https://msdn.microsoft.com/en-us/library/windows/desktop/aa363788(v=vs.85).aspx
  The ReFS file system, introduced with Windows Server 2012, includes
  128-bit file identifiers. To retrieve the 128-bit file identifier use the
  GetFileInformationByHandleEx function with FileIdInfo to retrieve the
  FILE_ID_INFO structure. The 64-bit identifier in this structure is not
  guaranteed to be unique on ReFS.

128ビットの数字を入れるには現行の struct stati64 では足りません。しかし、 #13726
のパッチが受け入れられたなら stat 構造体の定義が変わるので、ついでに st_ino を
128ビットにしたら(もしくは st_ino を 64ビットにして、64ビットのメンバをもうひと
つ追加したら)どうでしょうか?
ruby 2.5 になるタイミングならABI非互換の変更も入れられるでしょう。




-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-dev:50333] [Ruby trunk Feature#13731][Assigned] inode for Windows on ReFS
       [not found] <redmine.issue-13731.20170708061530@ruby-lang.org>
                   ` (2 preceding siblings ...)
  2017-07-18 12:36 ` [ruby-dev:50179] [Ruby trunk Feature#13731] " usa
@ 2017-12-04  3:36 ` usa
  2017-12-07 11:37 ` [ruby-dev:50338] [Ruby trunk Feature#13731] " kubo
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 11+ messages in thread
From: usa @ 2017-12-04  3:36 UTC (permalink / raw)
  To: ruby-dev

Issue #13731 has been updated by usa (Usaku NAKAMURA).

Status changed from Closed to Assigned

stat構造体の変更は大掛かりなことになる上に、[Feature #13726] にはちょっと問題が発生しているので、とりあえず `File.identical?` のみ対応しました。
stat構造体の方は 2.5 には入らないかもしれません。

----------------------------------------
Feature #13731: inode for Windows on ReFS
https://bugs.ruby-lang.org/issues/13731#change-68163

* Author: kubo (Takehiro Kubo)
* Status: Assigned
* Priority: Normal
* Assignee: usa (Usaku NAKAMURA)
* Target version: 2.5
----------------------------------------
#11216 でWindowsでのinodeの代用としてBY_HANDLE_FILE_INFORMATION構造体の
メンバ、nFileIndexHigh/Lowを使っていますが、ReFS ではこの値ではユニークに
なりません。ReFSでは64ビットではなくて、128ビットでユニークな番号になります。

In https://msdn.microsoft.com/en-us/library/windows/desktop/aa363788(v=vs.85).aspx
  The ReFS file system, introduced with Windows Server 2012, includes
  128-bit file identifiers. To retrieve the 128-bit file identifier use the
  GetFileInformationByHandleEx function with FileIdInfo to retrieve the
  FILE_ID_INFO structure. The 64-bit identifier in this structure is not
  guaranteed to be unique on ReFS.

128ビットの数字を入れるには現行の struct stati64 では足りません。しかし、 #13726
のパッチが受け入れられたなら stat 構造体の定義が変わるので、ついでに st_ino を
128ビットにしたら(もしくは st_ino を 64ビットにして、64ビットのメンバをもうひと
つ追加したら)どうでしょうか?
ruby 2.5 になるタイミングならABI非互換の変更も入れられるでしょう。




-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-dev:50338] [Ruby trunk Feature#13731] inode for Windows on ReFS
       [not found] <redmine.issue-13731.20170708061530@ruby-lang.org>
                   ` (3 preceding siblings ...)
  2017-12-04  3:36 ` [ruby-dev:50333] [Ruby trunk Feature#13731][Assigned] " usa
@ 2017-12-07 11:37 ` kubo
  2017-12-10 23:24 ` [ruby-dev:50340] " usa
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 11+ messages in thread
From: kubo @ 2017-12-07 11:37 UTC (permalink / raw)
  To: ruby-dev

Issue #13731 has been updated by kubo (Takehiro Kubo).


2.5 に入らないかもしれないとのこと、了解です。

ついでですが、ReFSボリュームを作ってファイルを2つ作成し、FILE_ID_INFO の128ビットの値と nFileIndexHigh/Low の64ビットの値を取得してみました。

FILE_ID_INFOの値をリトルエンディアン128ビット整数として表記すると、以下の値が取れました。(32ビット毎にアンダースコアを付与)

* 0x00000000_00000001_00000000_00000600
* 0x00000000_00000002_00000000_00000600

一方、同じファイルの nFileIndexHigh/Low の値はそれぞれ以下のようになっていました。

* 0x30000000_00001600
* 0x30000000_00002600

サンプル数が少ないので完全に当てずっぽうですが、128ビットの値をビットシフトして、xor した値を64ビットの値として使い、64ビットにしたときの衝突が少ないように工夫しているのかもしれません。


----------------------------------------
Feature #13731: inode for Windows on ReFS
https://bugs.ruby-lang.org/issues/13731#change-68223

* Author: kubo (Takehiro Kubo)
* Status: Assigned
* Priority: Normal
* Assignee: usa (Usaku NAKAMURA)
* Target version: 
----------------------------------------
#11216 でWindowsでのinodeの代用としてBY_HANDLE_FILE_INFORMATION構造体の
メンバ、nFileIndexHigh/Lowを使っていますが、ReFS ではこの値ではユニークに
なりません。ReFSでは64ビットではなくて、128ビットでユニークな番号になります。

In https://msdn.microsoft.com/en-us/library/windows/desktop/aa363788(v=vs.85).aspx
  The ReFS file system, introduced with Windows Server 2012, includes
  128-bit file identifiers. To retrieve the 128-bit file identifier use the
  GetFileInformationByHandleEx function with FileIdInfo to retrieve the
  FILE_ID_INFO structure. The 64-bit identifier in this structure is not
  guaranteed to be unique on ReFS.

128ビットの数字を入れるには現行の struct stati64 では足りません。しかし、 #13726
のパッチが受け入れられたなら stat 構造体の定義が変わるので、ついでに st_ino を
128ビットにしたら(もしくは st_ino を 64ビットにして、64ビットのメンバをもうひと
つ追加したら)どうでしょうか?
ruby 2.5 になるタイミングならABI非互換の変更も入れられるでしょう。




-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-dev:50340] [Ruby trunk Feature#13731] inode for Windows on ReFS
       [not found] <redmine.issue-13731.20170708061530@ruby-lang.org>
                   ` (4 preceding siblings ...)
  2017-12-07 11:37 ` [ruby-dev:50338] [Ruby trunk Feature#13731] " kubo
@ 2017-12-10 23:24 ` usa
  2017-12-11 11:26 ` [ruby-dev:50341] " kubo
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 11+ messages in thread
From: usa @ 2017-12-10 23:24 UTC (permalink / raw)
  To: ruby-dev

Issue #13731 has been updated by usa (Usaku NAKAMURA).


入らないかもと言いましたが、なんとか間に合わせてみました。
しかしReFSでの確認は環境がなくてできてないので、問題があったら教えてください。

----------------------------------------
Feature #13731: inode for Windows on ReFS
https://bugs.ruby-lang.org/issues/13731#change-68255

* Author: kubo (Takehiro Kubo)
* Status: Closed
* Priority: Normal
* Assignee: usa (Usaku NAKAMURA)
* Target version: 
----------------------------------------
#11216 でWindowsでのinodeの代用としてBY_HANDLE_FILE_INFORMATION構造体の
メンバ、nFileIndexHigh/Lowを使っていますが、ReFS ではこの値ではユニークに
なりません。ReFSでは64ビットではなくて、128ビットでユニークな番号になります。

In https://msdn.microsoft.com/en-us/library/windows/desktop/aa363788(v=vs.85).aspx
  The ReFS file system, introduced with Windows Server 2012, includes
  128-bit file identifiers. To retrieve the 128-bit file identifier use the
  GetFileInformationByHandleEx function with FileIdInfo to retrieve the
  FILE_ID_INFO structure. The 64-bit identifier in this structure is not
  guaranteed to be unique on ReFS.

128ビットの数字を入れるには現行の struct stati64 では足りません。しかし、 #13726
のパッチが受け入れられたなら stat 構造体の定義が変わるので、ついでに st_ino を
128ビットにしたら(もしくは st_ino を 64ビットにして、64ビットのメンバをもうひと
つ追加したら)どうでしょうか?
ruby 2.5 になるタイミングならABI非互換の変更も入れられるでしょう。




-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-dev:50341] [Ruby trunk Feature#13731] inode for Windows on ReFS
       [not found] <redmine.issue-13731.20170708061530@ruby-lang.org>
                   ` (5 preceding siblings ...)
  2017-12-10 23:24 ` [ruby-dev:50340] " usa
@ 2017-12-11 11:26 ` kubo
  2017-12-11 17:32 ` [ruby-dev:50342] " usa
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 11+ messages in thread
From: kubo @ 2017-12-11 11:26 UTC (permalink / raw)
  To: ruby-dev

Issue #13731 has been updated by kubo (Takehiro Kubo).


対応ありがとうございます。ReFSでの動作テストは明日行います。

stati128_handle() の以下の部分

~~~
	    st->st_ino = *((unsigned __int64 *)&fii);
	    st->st_inohigh = *((__int64 *)&fii + 1);
~~~

`&ffi` は `&ffi.FileId` の間違いでしょうか?


----------------------------------------
Feature #13731: inode for Windows on ReFS
https://bugs.ruby-lang.org/issues/13731#change-68262

* Author: kubo (Takehiro Kubo)
* Status: Closed
* Priority: Normal
* Assignee: usa (Usaku NAKAMURA)
* Target version: 
----------------------------------------
#11216 でWindowsでのinodeの代用としてBY_HANDLE_FILE_INFORMATION構造体の
メンバ、nFileIndexHigh/Lowを使っていますが、ReFS ではこの値ではユニークに
なりません。ReFSでは64ビットではなくて、128ビットでユニークな番号になります。

In https://msdn.microsoft.com/en-us/library/windows/desktop/aa363788(v=vs.85).aspx
  The ReFS file system, introduced with Windows Server 2012, includes
  128-bit file identifiers. To retrieve the 128-bit file identifier use the
  GetFileInformationByHandleEx function with FileIdInfo to retrieve the
  FILE_ID_INFO structure. The 64-bit identifier in this structure is not
  guaranteed to be unique on ReFS.

128ビットの数字を入れるには現行の struct stati64 では足りません。しかし、 #13726
のパッチが受け入れられたなら stat 構造体の定義が変わるので、ついでに st_ino を
128ビットにしたら(もしくは st_ino を 64ビットにして、64ビットのメンバをもうひと
つ追加したら)どうでしょうか?
ruby 2.5 になるタイミングならABI非互換の変更も入れられるでしょう。




-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-dev:50342] [Ruby trunk Feature#13731] inode for Windows on ReFS
       [not found] <redmine.issue-13731.20170708061530@ruby-lang.org>
                   ` (6 preceding siblings ...)
  2017-12-11 11:26 ` [ruby-dev:50341] " kubo
@ 2017-12-11 17:32 ` usa
  2017-12-11 19:22 ` [ruby-dev:50343] " Greg.mpls
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 11+ messages in thread
From: usa @ 2017-12-11 17:32 UTC (permalink / raw)
  To: ruby-dev

Issue #13731 has been updated by usa (Usaku NAKAMURA).


kubo (Takehiro Kubo) wrote:
> stati128_handle() の以下の部分
> 
> ~~~
> 	    st->st_ino = *((unsigned __int64 *)&fii);
> 	    st->st_inohigh = *((__int64 *)&fii + 1);
> ~~~
> 
> `&ffi` は `&ffi.FileId` の間違いでしょうか?

おっしゃる通りです。お恥ずかしい。
r61121で修正しました。

----------------------------------------
Feature #13731: inode for Windows on ReFS
https://bugs.ruby-lang.org/issues/13731#change-68275

* Author: kubo (Takehiro Kubo)
* Status: Closed
* Priority: Normal
* Assignee: usa (Usaku NAKAMURA)
* Target version: 
----------------------------------------
#11216 でWindowsでのinodeの代用としてBY_HANDLE_FILE_INFORMATION構造体の
メンバ、nFileIndexHigh/Lowを使っていますが、ReFS ではこの値ではユニークに
なりません。ReFSでは64ビットではなくて、128ビットでユニークな番号になります。

In https://msdn.microsoft.com/en-us/library/windows/desktop/aa363788(v=vs.85).aspx
  The ReFS file system, introduced with Windows Server 2012, includes
  128-bit file identifiers. To retrieve the 128-bit file identifier use the
  GetFileInformationByHandleEx function with FileIdInfo to retrieve the
  FILE_ID_INFO structure. The 64-bit identifier in this structure is not
  guaranteed to be unique on ReFS.

128ビットの数字を入れるには現行の struct stati64 では足りません。しかし、 #13726
のパッチが受け入れられたなら stat 構造体の定義が変わるので、ついでに st_ino を
128ビットにしたら(もしくは st_ino を 64ビットにして、64ビットのメンバをもうひと
つ追加したら)どうでしょうか?
ruby 2.5 になるタイミングならABI非互換の変更も入れられるでしょう。




-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-dev:50343] [Ruby trunk Feature#13731] inode for Windows on ReFS
       [not found] <redmine.issue-13731.20170708061530@ruby-lang.org>
                   ` (7 preceding siblings ...)
  2017-12-11 17:32 ` [ruby-dev:50342] " usa
@ 2017-12-11 19:22 ` Greg.mpls
  2017-12-12 11:16 ` [ruby-dev:50345] " kubo
  2017-12-12 11:58 ` [ruby-dev:50346] " usa
  10 siblings, 0 replies; 11+ messages in thread
From: Greg.mpls @ 2017-12-11 19:22 UTC (permalink / raw)
  To: ruby-dev

Issue #13731 has been updated by MSP-Greg (Greg L).


Usaka (and Kubo),

Thank you, with 61121 ruby-loco MinGW build is passing.  I'll see what happens with a local Win7 build later on.

You're embarrassed?  Don't be.  How about me, as all I can do re c source issues is say 'something broke'...

Thanks again, Greg

----------------------------------------
Feature #13731: inode for Windows on ReFS
https://bugs.ruby-lang.org/issues/13731#change-68276

* Author: kubo (Takehiro Kubo)
* Status: Closed
* Priority: Normal
* Assignee: usa (Usaku NAKAMURA)
* Target version: 
----------------------------------------
#11216 でWindowsでのinodeの代用としてBY_HANDLE_FILE_INFORMATION構造体の
メンバ、nFileIndexHigh/Lowを使っていますが、ReFS ではこの値ではユニークに
なりません。ReFSでは64ビットではなくて、128ビットでユニークな番号になります。

In https://msdn.microsoft.com/en-us/library/windows/desktop/aa363788(v=vs.85).aspx
  The ReFS file system, introduced with Windows Server 2012, includes
  128-bit file identifiers. To retrieve the 128-bit file identifier use the
  GetFileInformationByHandleEx function with FileIdInfo to retrieve the
  FILE_ID_INFO structure. The 64-bit identifier in this structure is not
  guaranteed to be unique on ReFS.

128ビットの数字を入れるには現行の struct stati64 では足りません。しかし、 #13726
のパッチが受け入れられたなら stat 構造体の定義が変わるので、ついでに st_ino を
128ビットにしたら(もしくは st_ino を 64ビットにして、64ビットのメンバをもうひと
つ追加したら)どうでしょうか?
ruby 2.5 になるタイミングならABI非互換の変更も入れられるでしょう。




-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-dev:50345] [Ruby trunk Feature#13731] inode for Windows on ReFS
       [not found] <redmine.issue-13731.20170708061530@ruby-lang.org>
                   ` (8 preceding siblings ...)
  2017-12-11 19:22 ` [ruby-dev:50343] " Greg.mpls
@ 2017-12-12 11:16 ` kubo
  2017-12-12 11:58 ` [ruby-dev:50346] " usa
  10 siblings, 0 replies; 11+ messages in thread
From: kubo @ 2017-12-12 11:16 UTC (permalink / raw)
  To: ruby-dev

Issue #13731 has been updated by kubo (Takehiro Kubo).


ReFS と NTFS 上での `File.stat(filename).ino` の値と、GetFileInformationByHandleEx()を使って得た FILE_ID_128 の値が一致することを確認しました。コンパイル時の以下の warning 以外は問題なしです。

~~~
compiling win32/win32.c
win32/win32.c: In function 'get_ino':
win32/win32.c:5445:11: warning: unused variable 'err' [-Wunused-variable]
     DWORD err;
           ^~~
~~~

対応ありがとうございます。


----------------------------------------
Feature #13731: inode for Windows on ReFS
https://bugs.ruby-lang.org/issues/13731#change-68324

* Author: kubo (Takehiro Kubo)
* Status: Closed
* Priority: Normal
* Assignee: usa (Usaku NAKAMURA)
* Target version: 
----------------------------------------
#11216 でWindowsでのinodeの代用としてBY_HANDLE_FILE_INFORMATION構造体の
メンバ、nFileIndexHigh/Lowを使っていますが、ReFS ではこの値ではユニークに
なりません。ReFSでは64ビットではなくて、128ビットでユニークな番号になります。

In https://msdn.microsoft.com/en-us/library/windows/desktop/aa363788(v=vs.85).aspx
  The ReFS file system, introduced with Windows Server 2012, includes
  128-bit file identifiers. To retrieve the 128-bit file identifier use the
  GetFileInformationByHandleEx function with FileIdInfo to retrieve the
  FILE_ID_INFO structure. The 64-bit identifier in this structure is not
  guaranteed to be unique on ReFS.

128ビットの数字を入れるには現行の struct stati64 では足りません。しかし、 #13726
のパッチが受け入れられたなら stat 構造体の定義が変わるので、ついでに st_ino を
128ビットにしたら(もしくは st_ino を 64ビットにして、64ビットのメンバをもうひと
つ追加したら)どうでしょうか?
ruby 2.5 になるタイミングならABI非互換の変更も入れられるでしょう。




-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-dev:50346] [Ruby trunk Feature#13731] inode for Windows on ReFS
       [not found] <redmine.issue-13731.20170708061530@ruby-lang.org>
                   ` (9 preceding siblings ...)
  2017-12-12 11:16 ` [ruby-dev:50345] " kubo
@ 2017-12-12 11:58 ` usa
  10 siblings, 0 replies; 11+ messages in thread
From: usa @ 2017-12-12 11:58 UTC (permalink / raw)
  To: ruby-dev

Issue #13731 has been updated by usa (Usaku NAKAMURA).


確認ありがとうございました。警告も消しておきました。

----------------------------------------
Feature #13731: inode for Windows on ReFS
https://bugs.ruby-lang.org/issues/13731#change-68330

* Author: kubo (Takehiro Kubo)
* Status: Closed
* Priority: Normal
* Assignee: usa (Usaku NAKAMURA)
* Target version: 
----------------------------------------
#11216 でWindowsでのinodeの代用としてBY_HANDLE_FILE_INFORMATION構造体の
メンバ、nFileIndexHigh/Lowを使っていますが、ReFS ではこの値ではユニークに
なりません。ReFSでは64ビットではなくて、128ビットでユニークな番号になります。

In https://msdn.microsoft.com/en-us/library/windows/desktop/aa363788(v=vs.85).aspx
  The ReFS file system, introduced with Windows Server 2012, includes
  128-bit file identifiers. To retrieve the 128-bit file identifier use the
  GetFileInformationByHandleEx function with FileIdInfo to retrieve the
  FILE_ID_INFO structure. The 64-bit identifier in this structure is not
  guaranteed to be unique on ReFS.

128ビットの数字を入れるには現行の struct stati64 では足りません。しかし、 #13726
のパッチが受け入れられたなら stat 構造体の定義が変わるので、ついでに st_ino を
128ビットにしたら(もしくは st_ino を 64ビットにして、64ビットのメンバをもうひと
つ追加したら)どうでしょうか?
ruby 2.5 になるタイミングならABI非互換の変更も入れられるでしょう。




-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2017-12-12 11:58 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <redmine.issue-13731.20170708061530@ruby-lang.org>
2017-07-08  6:15 ` [ruby-dev:50166] [Ruby trunk Bug#13731] inode for Windows on ReFS kubo
2017-07-14  9:01 ` [ruby-dev:50176] [Ruby trunk Feature#13731][Assigned] " naruse
2017-07-18 12:36 ` [ruby-dev:50179] [Ruby trunk Feature#13731] " usa
2017-12-04  3:36 ` [ruby-dev:50333] [Ruby trunk Feature#13731][Assigned] " usa
2017-12-07 11:37 ` [ruby-dev:50338] [Ruby trunk Feature#13731] " kubo
2017-12-10 23:24 ` [ruby-dev:50340] " usa
2017-12-11 11:26 ` [ruby-dev:50341] " kubo
2017-12-11 17:32 ` [ruby-dev:50342] " usa
2017-12-11 19:22 ` [ruby-dev:50343] " Greg.mpls
2017-12-12 11:16 ` [ruby-dev:50345] " kubo
2017-12-12 11:58 ` [ruby-dev:50346] " usa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).