mount: quota adjust error type to be syscall.ENOSPC

This commit is contained in:
chrislu 2022-03-06 17:04:21 -08:00
parent c7e8ac18f0
commit f3442e36e6
9 changed files with 14 additions and 9 deletions

View File

@ -36,7 +36,7 @@ func (wfs *WFS) GetAttr(cancel <-chan struct{}, input *fuse.GetAttrIn, out *fuse
func (wfs *WFS) SetAttr(cancel <-chan struct{}, input *fuse.SetAttrIn, out *fuse.AttrOut) (code fuse.Status) {
if wfs.IsOverQuota {
return fuse.EPERM
return fuse.Status(syscall.ENOSPC)
}
path, fh, entry, status := wfs.maybeReadEntry(input.NodeId)

View File

@ -22,7 +22,7 @@ import (
func (wfs *WFS) Mkdir(cancel <-chan struct{}, in *fuse.MkdirIn, name string, out *fuse.EntryOut) (code fuse.Status) {
if wfs.IsOverQuota {
return fuse.EPERM
return fuse.Status(syscall.ENOSPC)
}
if s := checkName(name); s != fuse.OK {

View File

@ -7,6 +7,7 @@ import (
"github.com/chrislusf/seaweedfs/weed/glog"
"github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
"github.com/hanwen/go-fuse/v2/fuse"
"syscall"
"time"
)
@ -36,7 +37,7 @@ func (wfs *WFS) Create(cancel <-chan struct{}, in *fuse.CreateIn, name string, o
func (wfs *WFS) Mknod(cancel <-chan struct{}, in *fuse.MknodIn, name string, out *fuse.EntryOut) (code fuse.Status) {
if wfs.IsOverQuota {
return fuse.EPERM
return fuse.Status(syscall.ENOSPC)
}
if s := checkName(name); s != fuse.OK {

View File

@ -7,6 +7,7 @@ import (
"github.com/chrislusf/seaweedfs/weed/glog"
"github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
"github.com/hanwen/go-fuse/v2/fuse"
"syscall"
"time"
)
@ -112,7 +113,7 @@ func (wfs *WFS) doFlush(fh *FileHandle, uid, gid uint32) fuse.Status {
}
if wfs.IsOverQuota {
return fuse.EPERM
return fuse.Status(syscall.ENOSPC)
}
err := wfs.WithFilerClient(false, func(client filer_pb.SeaweedFilerClient) error {

View File

@ -3,6 +3,7 @@ package mount
import (
"github.com/hanwen/go-fuse/v2/fuse"
"net/http"
"syscall"
)
/**
@ -34,7 +35,7 @@ import (
func (wfs *WFS) Write(cancel <-chan struct{}, in *fuse.WriteIn, data []byte) (written uint32, code fuse.Status) {
if wfs.IsOverQuota {
return 0, fuse.EPERM
return 0, fuse.Status(syscall.ENOSPC)
}
fh := wfs.GetHandle(FileHandleId(in.Fh))

View File

@ -6,6 +6,7 @@ import (
"github.com/chrislusf/seaweedfs/weed/glog"
"github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
"github.com/hanwen/go-fuse/v2/fuse"
"syscall"
"time"
)
@ -24,7 +25,7 @@ When creating a link:
func (wfs *WFS) Link(cancel <-chan struct{}, in *fuse.LinkIn, name string, out *fuse.EntryOut) (code fuse.Status) {
if wfs.IsOverQuota {
return fuse.EPERM
return fuse.Status(syscall.ENOSPC)
}
if s := checkName(name); s != fuse.OK {

View File

@ -132,7 +132,7 @@ const (
func (wfs *WFS) Rename(cancel <-chan struct{}, in *fuse.RenameIn, oldName string, newName string) (code fuse.Status) {
if wfs.IsOverQuota {
return fuse.EPERM
return fuse.Status(syscall.ENOSPC)
}
if s := checkName(newName); s != fuse.OK {

View File

@ -8,6 +8,7 @@ import (
"github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
"github.com/hanwen/go-fuse/v2/fuse"
"os"
"syscall"
"time"
)
@ -15,7 +16,7 @@ import (
func (wfs *WFS) Symlink(cancel <-chan struct{}, header *fuse.InHeader, target string, name string, out *fuse.EntryOut) (code fuse.Status) {
if wfs.IsOverQuota {
return fuse.EPERM
return fuse.Status(syscall.ENOSPC)
}
if s := checkName(name); s != fuse.OK {
return s

View File

@ -71,7 +71,7 @@ func (wfs *WFS) GetXAttr(cancel <-chan struct{}, header *fuse.InHeader, attr str
func (wfs *WFS) SetXAttr(cancel <-chan struct{}, input *fuse.SetXAttrIn, attr string, data []byte) fuse.Status {
if wfs.IsOverQuota {
return fuse.EPERM
return fuse.Status(syscall.ENOSPC)
}
//validate attr name