# File src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb, line 135
          def changed?
            new_stat = File.stat(@filename)
            if @stat.ino != new_stat.ino || !new_stat.directory? || @stat.mtime != new_stat.mtime
              return true
            end

            count = 0
            Dir.foreach(@filename) do |entry|
              next if entry == DOT || entry == DOTDOT
              subfilename = "#{@filename}/#{entry}"

              file_info = @subfiles[entry]
              if !file_info || file_info.changed?(false)
                return true
              else
                count += 1
              end
            end

            return count != @subfiles.size
          rescue Errno::EACCES, Errno::ENOENT
            return true
          end