File-based locks