From 2aabbbc5562bd6893054664ceca5f961b59a325e Mon Sep 17 00:00:00 2001 From: Sandy Xu Date: Tue, 4 Jun 2024 18:27:48 +0800 Subject: [PATCH] meta: fix the error code of baseMeta.Open (#4920) --- pkg/meta/base.go | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/pkg/meta/base.go b/pkg/meta/base.go index bf0b5a571e03..e32b3d836a3a 100644 --- a/pkg/meta/base.go +++ b/pkg/meta/base.go @@ -1332,22 +1332,23 @@ func (m *baseMeta) touchAtime(ctx Context, inode Ino, attr *Attr) { } } -func (m *baseMeta) Open(ctx Context, inode Ino, flags uint32, attr *Attr) (rerr syscall.Errno) { +func (m *baseMeta) Open(ctx Context, inode Ino, flags uint32, attr *Attr) (st syscall.Errno) { if m.conf.ReadOnly && flags&(syscall.O_WRONLY|syscall.O_RDWR|syscall.O_TRUNC|syscall.O_APPEND) != 0 { return syscall.EROFS } defer func() { - if rerr == 0 { + if st == 0 { m.touchAtime(ctx, inode, attr) } }() if m.conf.OpenCache > 0 && m.of.OpenCheck(inode, attr) { return 0 } - var err syscall.Errno // attr may be valid, see fs.Open() if attr != nil && !attr.Full { - err = m.GetAttr(ctx, inode, attr) + if st = m.GetAttr(ctx, inode, attr); st != 0 { + return + } } var mmask uint8 = 0 switch flags & (syscall.O_RDONLY | syscall.O_WRONLY | syscall.O_RDWR) { @@ -1358,7 +1359,7 @@ func (m *baseMeta) Open(ctx Context, inode Ino, flags uint32, attr *Attr) (rerr case syscall.O_RDWR: mmask = MODE_MASK_R | MODE_MASK_W } - if rerr = m.Access(ctx, inode, mmask, attr); rerr != 0 { + if st = m.Access(ctx, inode, mmask, attr); st != 0 { return } @@ -1375,10 +1376,8 @@ func (m *baseMeta) Open(ctx Context, inode Ino, flags uint32, attr *Attr) (rerr return syscall.EPERM } } - if err == 0 { - m.of.Open(inode, attr) - } - return err + m.of.Open(inode, attr) + return 0 } func (m *baseMeta) InvalidateChunkCache(ctx Context, inode Ino, indx uint32) syscall.Errno {