On Apr 10, 2013, at 2:50 PM, Brian Foster <bfoster@xxxxxxxxxx> wrote: > On 04/10/2013 03:06 PM, Anand Avati wrote: >> >> On Apr 10, 2013, at 6:10 AM, Jeff Darcy <jdarcy@xxxxxxxxxx> wrote: >>>> Since XFS doesn't allow hard links across directory tree quota >>>> boundaries - we get EXDEV, it would prevent gluster from creation >>>> ".glusterfs" directory entries. So Gluster quota does both accounting >>>> and enforcing of quota. >>> >>> Well, that's certainly an unfortunate consequence of using links instead >>> of a log to track dirty files. :( One more reason to undo that damage, >>> I suppose, but that's a different thread. >> >> The problem here is with the gfid hard links (for providing stable file handles). Index uses hard links from an internal backing file which is also created within .glusterfs - the actual dirty files are never linked into index. While we do want to make index use a different format, it is completely unrelated (in fact not a problem at all) to the XFS quota issue - which is linking of true files into .glusterfs for providing stable file handles. >> > > I went looking into this behavior because I don't recall running into it > before. I can reproduce EXDEV if I try link from project quota A to > project quota B but it looks like this only enforced when the target > directory has project quota inheritance enabled (to prevent writing a > file somewhere and linking it into a directory under quota, XFS enforces > that the project quota IDs must match). > > I can create a file under a project quota and link it out of the project > quota subtree without an error. So you could create a file under a > project quota and link it under .glusterfs, but not vice versa and not > into another directory covered by a project quota. I suppose this would be a problem if we set a quota limit on the volume top level, as .glusterfs is a subdirectory of the export directory? Avati