@@ -70,7 +70,7 @@ type Config struct {
7070
7171func NewJFSGateway (jfs * fs.FileSystem , conf * vfs.Config , gConf * Config ) (minio.ObjectLayer , error ) {
7272 mctx = meta .NewContext (uint32 (os .Getpid ()), uint32 (os .Getuid ()), []uint32 {uint32 (os .Getgid ())})
73- jfsObj := & jfsObjects {fs : jfs , conf : conf , listPool : minio .NewTreeWalkPool (time .Minute * 30 ), gConf : gConf , nsMutex : minio .NewNSLock (false )}
73+ jfsObj := & jfsObjects {fs : jfs , conf : conf , listPool : minio .NewTreeWalkPool (time .Second * 10 ), gConf : gConf , nsMutex : minio .NewNSLock (false )}
7474 go jfsObj .cleanup ()
7575 return jfsObj , nil
7676}
@@ -339,21 +339,10 @@ func (n *jfsObjects) listDirFactory() minio.ListDirFunc {
339339 continue
340340 }
341341 }
342- entry := & minio.Entry {Name : fi .Name (),
343- Info : & minio.ObjectInfo {
344- Bucket : bucket ,
345- Name : fi .Name (),
346- ModTime : fi .ModTime (),
347- Size : fi .Size (),
348- IsDir : fi .IsDir (),
349- AccTime : fi .ModTime (),
350- IsLatest : true ,
351- },
352- }
342+ entry := & minio.Entry {Name : fi .Name (), Info : fi }
353343
354344 if fi .IsDir () {
355345 entry .Name += sep
356- entry .Info .Size = 0
357346 }
358347 entries = append (entries , entry )
359348 }
@@ -383,9 +372,10 @@ func (n *jfsObjects) ListObjects(ctx context.Context, bucket, prefix, marker, de
383372 if err := n .checkBucket (ctx , bucket ); err != nil {
384373 return loi , err
385374 }
386- getObjectInfo := func (ctx context.Context , bucket , object string , info * minio. ObjectInfo ) (obj minio.ObjectInfo , err error ) {
375+ getObjectInfo := func (ctx context.Context , bucket , object string , fi_ any ) (obj minio.ObjectInfo , err error ) {
387376 var eno syscall.Errno
388- if info == nil {
377+ var info * minio.ObjectInfo
378+ if fi_ == nil {
389379 var fi * fs.FileStat
390380 fi , eno = n .fs .Stat (mctx , n .path (bucket , object ))
391381 if eno == 0 {
@@ -416,6 +406,20 @@ func (n *jfsObjects) ListObjects(ctx context.Context, bucket, prefix, marker, de
416406 }
417407 eno = 0
418408 }
409+ } else {
410+ fi := fi_ .(* fs.FileStat )
411+ info = & minio.ObjectInfo {
412+ Bucket : bucket ,
413+ Name : fi .Name (),
414+ ModTime : fi .ModTime (),
415+ Size : fi .Size (),
416+ IsDir : fi .IsDir (),
417+ AccTime : fi .ModTime (),
418+ IsLatest : true ,
419+ }
420+ if fi .IsDir () {
421+ info .Size = 0
422+ }
419423 }
420424
421425 if info == nil {
@@ -1457,7 +1461,23 @@ func (n *jfsObjects) ListObjectVersions(ctx context.Context, bucket, prefix, mar
14571461 return loi , err
14581462}
14591463
1460- func (n * jfsObjects ) getObjectInfoNoFSLock (ctx context.Context , bucket , object string , info * minio.ObjectInfo ) (oi minio.ObjectInfo , e error ) {
1464+ func (n * jfsObjects ) getObjectInfoNoFSLock (ctx context.Context , bucket , object string , info any ) (oi minio.ObjectInfo , e error ) {
1465+ if info != nil {
1466+ fi := info .(* fs.FileStat )
1467+ oi = minio.ObjectInfo {
1468+ Bucket : bucket ,
1469+ Name : fi .Name (),
1470+ ModTime : fi .ModTime (),
1471+ Size : fi .Size (),
1472+ IsDir : fi .IsDir (),
1473+ AccTime : fi .ModTime (),
1474+ IsLatest : true ,
1475+ }
1476+ if fi .IsDir () {
1477+ oi .Size = 0
1478+ }
1479+ return
1480+ }
14611481 return n .GetObjectInfo (ctx , bucket , object , minio.ObjectOptions {})
14621482}
14631483
0 commit comments