[samba-jp:20322] ファイル生成時刻の扱いについて

KAWASUMI Junji touchan @ papa-net.bpl.jp
2008年 8月 12日 (火) 01:05:34 JST


川澄@愛知県知多郡在住 と申します。

8月9日のOSC名古屋で太田さんに質問させていただいた、FFS2あるい
はUFS2等のファイル生成時刻をサポートしたファイルシステム上にお
いてsambaの実装はどうなっているのかと質問したものです。
ものはためしで、クイックハックでパッチを作ってみました。
Windowsでプロパティを見てみたらバッチリイイ感じでしたので投稿
します。

NetBSD版も同様にやってみるつもりですが、でもよくよく考えてみる
と、これは samba本体というより、FS依存なので各ディストリビュー
ションに投げた方がいいのかなとも思い始めました。

そもそも struct stat の st_birthtime なんてposixにあるのか??
と微妙な気持ちになってきました。

samba側でサポートすべきかOS側のsambaビルド時のパッチに組み入れ
るべきか、判断がつきません。
賢者の方々のご意見を頂きたく。


環境:OS FreeBSD-6.3 / samba-3.0.28.1

パッチ内容 (ktermからの切り貼りなのでタブがスペース化されてます。
======================= ちょきちょきちょき ===========================

--- samba-3.0.28/source/lib/time.c      2007-11-15 12:15:03.000000000 +0900
+++ ../work.new/samba-3.0.28/source/lib/time.c  2008-08-12 00:42:36.000000000 +0900
@@ -823,30 +823,36 @@
 }
 
 /****************************************************************************
  Return the best approximation to a 'create time' under UNIX from a stat
  structure.
 ****************************************************************************/
 
 time_t get_create_time(const SMB_STRUCT_STAT *st,BOOL fake_dirs)
 {
        time_t ret, ret1;
 
        if(S_ISDIR(st->st_mode) && fake_dirs) {
                return (time_t)315493200L;          /* 1/1/1980 */
        }
     
+/* create time patch start for FreeBSD */
+       ret = st->st_birthtime;
+       if (ret > (time_t)0) {
+               return ret;
+       }
+/* patch end */
        ret = MIN(st->st_ctime, st->st_mtime);
        ret1 = MIN(ret, st->st_atime);
 
        if(ret1 != (time_t)0) {
                return ret1;
        }
 
        /*
         * One of ctime, mtime or atime was zero (probably atime).
         * Just return MIN(ctime, mtime).
         */
        return ret;
 }
 
 struct timespec get_create_timespec(const SMB_STRUCT_STAT *st,BOOL fake_dirs)

======================= ちょきちょきちょき ===========================

以上です

-- 
--  川澄 淳治
--  KAWASUMI Junji <touchan @ papa-net.bpl.jp>
--  愛知県知多郡在住 (JR武豊線沿線)
--   〜 みんなで幸せになろうよ。。。〜
--



samba-jp メーリングリストの案内