ruby-dev (Japanese) list archive (unofficial mirror)
 help / color / mirror / Atom feed
From: usa@garbagecollect•jp
To: ruby-dev@ruby-lang.org
Subject: [ruby-dev:50342] [Ruby trunk Feature#13731] inode for Windows on ReFS
Date: Mon, 11 Dec 2017 17:32:16 +0000 (UTC)	[thread overview]
Message-ID: <redmine.journal-68275.20171211173214.d3761443c43cd253@ruby-lang.org> (raw)
In-Reply-To: redmine.issue-13731.20170708061530@ruby-lang.org

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/

  parent reply	other threads:[~2017-12-11 17:32 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [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 ` usa [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.ruby-lang.org/en/community/mailing-lists/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=redmine.journal-68275.20171211173214.d3761443c43cd253@ruby-lang.org \
    --to=ruby-dev@ruby-lang.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).